我将react-redux包从版本:6.0.1升级到版本:7.2.3 以及最新版本的类型:7.1.16。
我观察到,在 redux 连接的基于类的组件的情况下,我存储的所有快照都会失败:
原始快照:
<Connect(DynamicElements) />
新快照:
<Memo(Connect(DynamicElements)) />
- 我尝试了官方文档来了解 Memo 对连接组件的作用,但没有找到任何答案。 (从 Memo 这个名字就可以清楚地看出它将有助于防止重新渲染)
- 添加备忘录有什么问题吗?还是我应该按原样接受新快照?
最佳答案
React-Redux始终实现了connect
,其行为类似于“纯/记忆化组件”,因此您自己的包装组件仅在结果“child props”(来自 mapState
、mapDispatch
和父级的组合 props)已更改。
我们的实现方式随着时间的推移,基于多种因素而发生了变化。
在React-Redux v7中,我们专门选择使用React.memo()
HOC作为进行一些比较工作的方法。
有关更多详细信息,请参阅我的广泛帖子 The History and Implementation of React-Redux ,其中讨论了多年来我们实现方法的变化。
关于reactjs - 为什么react-redux将连接的组件包装在Memo中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66769612/