ngrx/effects 未分派映射操作
ngrx/effects not dispatching mapped actions
我使用 ngrx/effects 库定义了一个非常直接的效果。
@Effect()
public Authorize$ = this._actions$.ofType(IdentityActionsService.AUTHORIZE_IDENTITY)
.switchMap(action => this._svc.Authorize$(action.payload))
.catch(err => Observable.of(null).do(() => console.error(err); }))
.map(identity => this._identity.OnIdentityAuthorized(identity))
@Effect 被触发,authorize$() 运行,OnIdentityAuthorized() 方法,returns 一个 Action ({type: payload: }) 触发...
我期望发生的事情是 OnIdentityAuthorized() 返回的操作应该被送入适当的减速器中——这并没有发生。
我在 OnIdentityAuthorized 和相应的 reducer 中有一个调试器调用。 OnIdentityAuthorized 返回的 Action 未被调度。这可能是什么原因造成的?我误会了什么吗?
我觉得我得到的与这里的示例 1 基本相同:https://github.com/ngrx/effects/blob/master/docs/intro.md
编辑
添加了额外的代码部分...效果会触发 OnIdentityAuthorized 调试器语句,因此可观察对象会通过异步授权调用一直发出。 reducer case 没有触发...
这是 OnIdentityAuthorized() 实现:
public static ON_IDENTITY_AUTHORIZED = '[IDENTITY] Authorized';
public OnIdentityAuthorized(identity: Identity | JWT): Action {
debugger;
return {
type: IdentityActionsService.ON_IDENTITY_AUTHORIZED,
payload: identity
};
}
这里是减速器部分:
switch (action.type) {
case IdentityActionsService.ON_IDENTITY_AUTHORIZED:
debugger;
return merge({}, action.payload);
事实证明我注册减速器的方式存在问题。
我试图做一些奇特的事情,以便为延迟加载的模块添加额外的状态端点...结果那里有一个问题 - 但这是一个不同的问题。
我使用 ngrx/effects 库定义了一个非常直接的效果。
@Effect()
public Authorize$ = this._actions$.ofType(IdentityActionsService.AUTHORIZE_IDENTITY)
.switchMap(action => this._svc.Authorize$(action.payload))
.catch(err => Observable.of(null).do(() => console.error(err); }))
.map(identity => this._identity.OnIdentityAuthorized(identity))
@Effect 被触发,authorize$() 运行,OnIdentityAuthorized() 方法,returns 一个 Action ({type: payload: }) 触发...
我期望发生的事情是 OnIdentityAuthorized() 返回的操作应该被送入适当的减速器中——这并没有发生。
我在 OnIdentityAuthorized 和相应的 reducer 中有一个调试器调用。 OnIdentityAuthorized 返回的 Action 未被调度。这可能是什么原因造成的?我误会了什么吗?
我觉得我得到的与这里的示例 1 基本相同:https://github.com/ngrx/effects/blob/master/docs/intro.md
编辑 添加了额外的代码部分...效果会触发 OnIdentityAuthorized 调试器语句,因此可观察对象会通过异步授权调用一直发出。 reducer case 没有触发...
这是 OnIdentityAuthorized() 实现:
public static ON_IDENTITY_AUTHORIZED = '[IDENTITY] Authorized';
public OnIdentityAuthorized(identity: Identity | JWT): Action {
debugger;
return {
type: IdentityActionsService.ON_IDENTITY_AUTHORIZED,
payload: identity
};
}
这里是减速器部分:
switch (action.type) {
case IdentityActionsService.ON_IDENTITY_AUTHORIZED:
debugger;
return merge({}, action.payload);
事实证明我注册减速器的方式存在问题。
我试图做一些奇特的事情,以便为延迟加载的模块添加额外的状态端点...结果那里有一个问题 - 但这是一个不同的问题。