如何在Redux中定义Reducer执行的顺序?

时间:2016-03-10 23:42:50

标签: reactjs redux

假设我已将行动A分发给减速机R1R2。我还有智能组件C connect R1R2

返回的状态C

在执行R1但执行R2之前,是否有可能重新呈现组件C

如果我只想在执行R1R2时重新呈现dispatcher,该怎么办?或者是否可以告诉Redux R2先将行动发送到R1

* results实际上是由redux normalizr返回的R2状态,而entitiesentities状态。需要results来对spraed.pdf.generator: class: Spraed\PDFGeneratorBundle\PDFGenerator\PDFGenerator arguments: [ "@kernel" ]

进行非规范化

2 个答案:

答案 0 :(得分:26)

  

在执行R1但在执行R2之前,是否有可能重新呈现组件C?

不,如果您使用Redux文档建议的单个商店,则无法实现。

在Redux中,您将reducer与combineReducers()结合使用。这意味着从Redux的角度来看,只有一个reducer,它是同步的。当然,它会调用你的两个Reducer,但是Redux商店只有在从root减速器获得新的状态值后才开始通知用户,所以保证在通知视图时所有的reducers已经被执行了

答案 1 :(得分:0)

同步调度Redux操作,因此在调度操作后会立即发生操作的所有副作用。这意味着您的组件只会重新渲染一次,因为即使您多次调用setState,React也不会在状态更改时立即重新渲染(它似乎会推迟到下一个事件循环或动画帧)。 / p>

您只需更改正在调用的订单store.dispatch即可定义发送顺序。如果您希望R1.dispatch的所有副作用首先发生变化,请先致电R1