@ngrx/再次影响调度操作



我是ngrx/store和effect的新手,所以我仍然不理解调度操作的流程:

  1. 动作->效果->减速器->存储
  2. 动作->减速器->效果->减速器->store

我的问题是,当我调用store.select()时,我发现该操作被调度了两次,这就是我为测试所做的:

还原器功能

switch (action.type) { 
...
default: { 
console.log('In reducer function'); 
return state; 
}
}

效果类构造函数

constructor( private action$: Actions ) { 
console.log('in effect constructor'); 
}

这就是我在控制台中得到的

In reducer function
in effect constructor
In reducer function

尝试不仅登录reducer一条消息,还登录action.type,然后您可以看到它有两个不同的操作:store initeffects init

当您调度一个action时,它首先进入effects,然后进入reducerreducer可以更新相关的state

通常,人们调度一个加载操作,它在一个效果中被处理,效果加载数据并返回一个带有有效负载的成功操作,然后reducer接收成功操作并将有效负载设置为其状态。

相关内容

  • 没有找到相关文章

最新更新