我在我的应用程序中调试性能问题。每次 Redux 状态更改时,我的顶级组件App
都会重新渲染,即使它的 props(来自 Redux)具有相同的值。
它从 Redux 传递了 2 个 props,一个是字符串,一个是对象。
export default connect(state => ({
name: state.name, // This is a string
address: state.address // This is an object
}))(App);
address
导致问题的是(对象)。我是否认为这是因为 Redux 的connect
函数进行了浅层比较并认为它address
已经改变了,因为它是一个新对象,即使认为值没有改变?
假设这是正确的,我相信解决方案是记忆address
,例如使用重新选择模块,或者使用shouldComponentUpdate
(这对我来说似乎更混乱)。我是否正确,这些是 2 个正常的解决方案?