Ngrx:在组件

时间:2017-03-30 08:42:49

标签: ngrx

我从我的组件发送ADD_SOURCE操作,当成功发送另一个ADD_SOURCE_SUCCESS时<:p>

this.store$
  .select(fromRoot.getUserState)
  .filter(user => user.id != null && user.logged)
  .takeUntil(this.componentDestroyed$)
  .do(user => this.store$.dispatch({type: 'ADD_SOURCE', payload: user.username}))
  .subscribe();

这是根据网络电话返回ADD_SOURCE_SUCCESS的效果:

@Effect({ dispatch: true })
  addSource$: Observable<Action> = this.actions$
    .ofType('ADD_SOURCE')
    .switchMap(
      (action: Action) =>
        this.userService.addCard(action.payload.username, action.payload.token)
          .map((card: CardDTO) => {
            return <Action>{
              type: 'ADD_SOURCE_SUCCESS',
              payload: <ICard>{ ... }
            };
          })
          .catch(_ => {
            return Observable.of(<Action>{ type: 'ADD_SOURCE_FAILED', payload: { }});
          }));

所以,然后在我的reducer上调度一个新的ADD_SOURCE_SUCCESS

private static saveSourceSuccess(sourcesRdx, type, payload) {
    return <ISourceRedux>{
        ids: [ ...sourcesRdx.ids, payload.id ],
        entities: Object.assign({}, sourcesRdx.entities, {[payload.id]: payload}),
        selectedIds: sourcesRdx.selectedIds,
        editingSource: null
    };
}

尽管如此,我还没有弄明白如何在我的组件上说这项操作是成功的,做了一件事或另一件事......

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在您的减速机中,您还应该处理成功与否。失败错误,使用错误消息或任何您需要的数据设置存储,并在其上创建一个选择器。然后ui应该订阅这个新的选择器,你会收到通知 查看本章 selectors