假设我有动作A,它被分派到还原剂R1和R2。我还有智能组件C,它是由R1和R2返回的状态的connect编辑的。
组件C是否有可能在执行R1时而在R2执行之前被重命名?
如果只在执行C和R2时才想重命名R1,该怎么办?或者,是否可以告诉Redux dispatcher首先将操作分派给R2?
*R1实际上是redux normalizr返回的results状态,R2是entities状态。需要使用entities来对results进行去定向。
发布于 2016-03-11 20:33:03
在执行R1时,在执行R2之前,组件C会被重新命名吗?
不,如果您使用Redux docs建议的单一商店,这是不可能的。
在Redux中,将还原剂与combineReducers()结合起来。这意味着从Redux的角度来看,只有一个减速器,而且它是同步的。当然,它会调用两个还原器,但是Redux存储只在从根还原器获得新的状态值之后才开始通知订阅者,因此可以保证在通知视图时,已经执行了所有还原器。
发布于 2016-03-11 00:15:00
Redux动作是同步分派的,所以动作的所有副作用都会在动作被分派之后立即发生。这意味着您的组件将只重呈现一次,因为React不会在状态更改时立即重新呈现(它似乎会推迟到下一个事件循环或动画帧),即使您多次调用setState。
您可以通过简单地更改调用store.dispatch的顺序来定义调度顺序。如果您希望首先发生R1.dispatch更改的所有副作用,请先调用R1。
https://stackoverflow.com/questions/35929543
复制相似问题