【发布时间】:2017-09-08 18:54:44
【问题描述】:
如果我有一个循环在每个循环中调度一个 redux 操作,那么 React 和 Redux 如何处理更新连接的组件?如果每个 redux 操作会单独导致某些组件的重新渲染,并且假设每个循环都会更新状态以具有新值,那么这些组件是否会在循环中每次都重新渲染?
组件的更新生命周期钩子是在循环中同步运行,还是 React / Redux 在某处批处理预期的更改,然后在循环结束后更新一次?
根据我刚才的经验,似乎正在进行某种批处理,因为组件似乎仅在循环结束时才更新,所有更改都同时注册。
关于如何解决这个问题的任何想法?这意味着我希望连接组件的“componentWillReceiveProps”方法在每次 redux 操作通过 reducer 并更改状态时运行。
【问题讨论】:
-
它应该在每个周期调用componentWillReceiveProps。每次您发送一个动作时,它都会更新商店,这应该传播到所有订阅的组件,并且您的组件应该接收新的道具。可以贴一些代码吗?
-
我知道 setState 是异步的,不确定 redux。但是当你考虑它时,js 的工作原理是你的循环总是在你有机会处理结果之前完成(这就是我们有闭包的原因)
-
使用 setInterval 运行循环,保持一些任意的间隔时间。回调应该增加计数器和 setState/dispatch-action
标签: javascript reactjs loops redux render