我有一个用过的react-boilerplate来为我的项目设置基础。假设我有一个容器和 2 个组件(dumb组件),如下所示,
App
- HomePage(Connected component with sidebarData and detailedData)
- SideBar(data=sidebarData)
- DetailedView(data=detailedData)
State
{
"sidebarData": makeSelectorSideBarData(), // reselect selector
"detailedData": makeSelectorDetailedViewData(), // reselect selector
}
很明显,子组件取决于单独的数据。但是当我的 detailedData
发生变化时,它也会重新渲染 SideBar
组件。
有没有办法使用 redux/reselect 来避免这种情况,而不实现 shouldComponentUpdate()
?
最佳答案
如果您不希望组件在指定的 props 更改之前重新渲染,您可以使用 PureComponent
。只需确保您知道浅层 prop 和状态比较足以满足您的用例:
PureComponent
’sshouldComponentUpdate()
only shallowly compares the objects. If these contain complex data structures, it may produce false-negatives for deeper differences
关于reactjs - react 样板 : Dumb components re-render when the data in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51429978/