我怎么能告诉Redux不要更新React状态呢?

时间:2017-09-20 02:01:40

标签: javascript reactjs redux react-redux

我目前正在处理一个非常大的数据表。用户可以采取的一些操作非常复杂 - 足够复杂,我可能最终{1}向Redux执行一百个实际操作,其中许多操作将取决于先前操作更新的状态,并导致一百个状态更改...这将导致页面看起来锁定,因为非常大的表中的大量内容被渲染了一百次,即使这些更新中没有一个对用户有意义(或者主动混淆)

有没有办法让Redux / React看到这些变化 - 说"好吧,不要纠缠纠缠这些东西的反应,不要重新计算任何道具,不要'做任何事情但是把这些东西扔进减速器直到它完成,我告诉你它完成了,然后恢复正常行为" ?

我知道我可以设置一些React状态属性,然后在我的许多组件中都有一个shouldUpdateComponent,但是我希望有一个解决方案涉及分散在几十个文件中的较少重复代码,甚至可能更高效一点避免每次更新几次调用相同的确切函数。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

丹·阿布拉莫夫本人在推特上写了一个如何使用批量操作和更高级别的减速器来做到这一点的例子。

https://twitter.com/dan_abramov/status/656074974533459968?lang=en

这个想法的要点是将你想要批处理的动作包装在另一个动作中,并定义一个更高阶的缩减器(一个返回另一个reducer的reducer,例如redux-undo),当它处理时它将应用所有这些动作批量操作更新。