effects中调用action中的问题

来源:7-3 什么是 Effects

qq_風華亂舞_0

2017-10-27

请问老师:

在我定义好effect后。

@Effect()
quote$: Observable<Action> = this.actions$
 .ofType(actions.ActionTypes.LOAD) 
 .map(toPayload) // 也可以map(p => p.payload)
 .switchMap(_ => this.service$.getQuote()
   .map(q => new actions.LoadSuccessAction(q)) 
   .catch(err => Observable.of(new actions.LoadFailAction(JSON.stringify(err))))
 );

为什么map(q => new actions.LoadSuccessAction(q))  这里不用 store$.dispatch(new quoteActions.LoadSuccessAction(q)); 这种形式来向store中发送action呢,不加dispath能让reducer调用到吗?

写回答

1回答

接灰的电子产品

2017-10-28

因为 Effects 是监听 Action 的流,如果使用 dispatch 发射的话,dispatch 是一个 void 型的函数,这样监听流就断了。

dispatch 是为了你在前端页面中的某个事件产生时发射 action 而准备的函数。Effects 是监听Action的流

0
0

Angular打造企业级协作平台,让你在Angular领域中出类拔萃

全网首个介绍官方 Material 组件库用法与 Redux 在 Angular 中的应用

998 学习 · 536 问题

查看课程