((edit)找出了问题所在,如果遇到类似问题,请参见评论。
我正在学习ngrx,遇到了一些奇怪的事情。当我尝试通过给定操作访问属性时,它们不在属性的键下。而是使用键0显示。值“ 1”是正确的,但是基于0的引用似乎不像基于预期属性的引用那样可读...我是否缺少通过action.userId访问的方法?
这是操作的控制台日志:
{0: "1", type: "[User] Get User"}
创建的动作:
export const getUser = createAction(
'[User] Get User',
props<{userId: number}>()
);
效果代码的重要部分:
getUser$ = createEffect(() => this._actions$.pipe(
ofType(getUser),
map(action => { console.log(action); console.log(action.userId); action.userId}),
发件地点:
this._store.dispatch(getUser(this._route.snapshot.params.id));
如official docs中所述,为此操作:
export const getUser = createAction(
'[User] Get User',
props<{ userId: number }>()
);
分发它的正确语法应该是:
this._store.dispatch(getUser({ userId: this._route.snapshot.params.id }));
createAction
创建一个getUser
动作创建者,该动作创建者使用object
函数中提供的相同类型的props
。