我是ngrx / store和effects的新手,所以我仍然不了解分派操作的流程:
我的问题是,当我打电话给store.select()
时,我发现该动作被调度了两次,这就是我为测试所做的:
减速器功能
switch (action.type) {
...
default: {
console.log('In reducer function');
return state;
}
}
Effects类的构造函数
constructor( private action$: Actions ) {
console.log('in effect constructor');
}
这就是我在控制台中得到的
In reducer function
in effect constructor
In reducer function
尝试登录reducer不仅是一条消息,而且要登录action.type
,然后您会看到它具有2个不同的动作:store init
和effects init
。
[当您调度action
时,它先移至effects
,然后移至reducer
,然后reducer
可以更新相关的state
。
通常人们调度一个加载动作,在一个效果中对其进行处理,效果加载数据并返回带有有效负载的成功动作,然后化简器接收成功动作并将有效负载设置为其状态。