【发布时间】:2020-02-14 10:30:02
【问题描述】:
如果我有这样的组件树,
//App.js
const App = () => (
<React.Fragment>
<A />
<B />
<C />
</React.Fragment>
)
//A.js
const A = () => (
<React.Fragment>
<ChildA />
</React.Fragment>
)
现在,假设所有三个组件 A、B、C 都使用 connect() 连接到存储。
问题是如果我用仅与组件A 相关的数据更新存储,那么B、C 也将被重新渲染。一种可能的解决方案是配置options 参数以避免docs 中提到的重新渲染。
为每个互斥的组件创建多个 reducer 函数可以解决这个问题吗?如果是,如何以及如果否,那么可以做些什么来尽量减少不必要的重新渲染。
更新:
除了@tmdesign 的答案,如果我创建A 的子组件,那么childA 中的一些更新会导致A 和childA 重新渲染,childA 重新渲染两次,因为两者都是连接普通reducer函数。
看,@tmdesign 的沙盒link,
【问题讨论】:
标签: reactjs redux react-redux