我制作了一个名为Graph的反应组件:
<Graph
chartOptions={{forceY: [0, 100]}}
graphData={graphData}
/>
我想实现shouldComponentUpdate,仅在需要时绘制图形。我研究了使用比较道具的PureRenderMixin。但是,我的chartOptions是每次运行此代码时具有相同内容的新对象。我希望chartOptions每次都是同一个对象,所以我可以正确地比较道具。我怎么能这样做?
答案 0 :(得分:0)
假设forceY中值的顺序很重要,以下代码应该有效......
在图表组件中 -
shouldComponentUpdate: function(newProps, newState){
if(!_.isEqual(this.props.chartOptions.forceY, newProps.chartOptions.forceY)){
return false;
}
return (newProps != this.props && newState != this.state);
}
_是lodash导入。您可以使用此库将新阵列与现有阵列进行比较。或者,您可以基于this post实现自己的相等比较器。