反应防止从父容器更新子级

时间:2019-02-22 14:14:26

标签: javascript reactjs

我正在使用react color picker来更改更改状态(每秒多次)。因为状态更改了我的组成部分,并且所有子项都被重新渲染。 我对子代没有任何控制权,因为它们是从其他库(reactstrap和react-fontawesome)中导入的,因此我需要一种方法来防止它们从父容器中更新。

我可以使用自定义# adds the lib folder to not specify prefix everytime link_directories( /usr/local/lib/ ) target_link_libraries( "<all opencv libs from /usr/local/lib>" ) # adds the includes (dunno if this needed but had to do it in my project) # but I think only if opencv includes are not located in your project # root dir target_include_directories( "/usr/local/include/opencv" or "/usr/local/include/opencv2" ) # depends what you use 创建一个包装器组件,但是该解决方案似乎有点怪异,所以我很好奇是否有针对此的解决方案。

我代码的相关部分:

shouldComponentUpdate()

我的某些navItems依赖于实时颜色信息,但大多数不依赖

2 个答案:

答案 0 :(得分:1)

如果您要传递的道具没有改变,则可以使用shouldComponentUpdate甚至更好的React.PureComponent。如果从顶层传递的道具与先前的道具相同,则PureComponent子代不会重新渲染。比较比较浅,因此不适用于深度嵌套的道具。

了解更多here

答案 1 :(得分:0)

我使用redux,可以使用reselect。 除非更改了其中一个参数,否则不会重新计算选择器(本质上是props)。