假设我已将行动A
分发给减速机R1
和R2
。我还有智能组件C
connect
R1
和R2
C
在执行R1
但执行R2
之前,是否有可能重新呈现组件C
?
如果我只想在执行R1
和R2
时重新呈现dispatcher
,该怎么办?或者是否可以告诉Redux R2
先将行动发送到R1
?
* results
实际上是由redux normalizr
返回的R2
状态,而entities
是entities
状态。需要results
来对spraed.pdf.generator:
class: Spraed\PDFGeneratorBundle\PDFGenerator\PDFGenerator
arguments: [ "@kernel" ]
答案 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
。