reactjs - 为什么react-redux将连接的组件包装在Memo中

标签 reactjs redux react-redux

我将react-redux包从版本:6.0.1升级到版本:7.2.3 以及最新版本的类型:7.1.16。

我观察到,在 redux 连接的基于类的组件的情况下,我存储的所有快照都会失败:

原始快照:

<Connect(DynamicElements) />

新快照:

<Memo(Connect(DynamicElements)) />
  • 我尝试了官方文档来了解 Memo 对连接组件的作用,但没有找到任何答案。 (从 Memo 这个名字就可以清楚地看出它将有助于防止重新渲染)
  • 添加备忘录有什么问题吗?还是我应该按原样接受新快照?

最佳答案

React-Redux始终实现了connect,其行为类似于“纯/记忆化组件”,因此您自己的包装组件仅在结果“child props”(来自 mapStatemapDispatch 和父级的组合 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/

相关文章:

reactjs - 使用 useRef react createPortal 不起作用

javascript - 我应该如何将函数传递给我的 React JSX 组件?

javascript - 失败的 Prop 类型 Prop 被标记为必需但其值为 `undefined`

javascript - 如何过滤对象数组并使该值与 React 中另一个数组的值匹配?

html - 如何在 react 中向按钮添加禁用属性?

javascript - React同步多张图片的onLoad

javascript - React - 在表格中呈现数据

javascript - Redux - 异步加载初始状态

reactjs - 使用部署在 Apache Tomcat 上的 Create-react-app 创建的 React 网站出现空白屏幕

javascript - 更改 Prop 时某些图像无法加载