gpt4 book ai didi

javascript - React Redux 如何处理循环中的连续变化

转载 作者:行者123 更新时间:2023-11-30 15:03:40 24 4
gpt4 key购买 nike

如果我有一个在每个循环中分派(dispatch) redux 操作的循环,React 和 Redux 如何处理更新连接的组件?如果每个 redux 操作都会单独导致某些组件的重新渲染,并假设每个循环都会更新状态以具有新值,那么这些组件是否每次都在循环中重新渲染?

组件的更新生命周期 Hook 是在循环中同步运行,还是 React/Redux 在某处批处理预期的更改,然后在循环完成后更新一次?

根据我刚才的经验,似乎正在进行某种批处理,因为组件似乎只在循环结束时才更新,所有更改都会同时注册。

关于如何解决这个问题的任何想法?这意味着我希望连接组件的“componentWillReceiveProps”方法在每次 redux 操作通过 reducer 并更改状态时运行。

最佳答案

起初我对 redux 不太确定,所以我把我的想法写成评论。
我越想越觉得我们知道答案:
首先,React 的 setState 是异步的,位于 DOCS 上。

This form of setState() is also asynchronous, and multiple calls during the same cycle may be batched together.

可是仔细一想,怎么可能不是呢?
Js 只有 1 个线程,这个线程忙于你的循环,所以它无法自行释放它来调用 dispatchsetState 等代码。
当你的循环完成后,这是运行所有"dispatch"和状态设置的时间,这里令人惊奇的部分是它可以“记住”每个变量和对象的上下文和范围,这要感谢我们的好 friend 闭包.

关于javascript - React Redux 如何处理循环中的连续变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46122949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com