将PureRenderMixin与硬编码道具一起使用

时间:2016-01-07 09:23:26

标签: reactjs

我制作了一个名为Graph的反应组件:

<Graph
    chartOptions={{forceY: [0, 100]}}
    graphData={graphData}
/>

我想实现shouldComponentUpdate,仅在需要时绘制图形。我研究了使用比较道具的PureRenderMixin。但是,我的chartOptions是每次运行此代码时具有相同内容的新对象。我希望chartOptions每次都是同一个对象,所以我可以正确地比较道具。我怎么能这样做?

1 个答案:

答案 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实现自己的相等比较器。