在componentDidUpdate中组织多个条件?

时间:2018-09-21 02:49:38

标签: javascript reactjs

假设我的componentDidUpdate()中有多个条件:

componentDidUpdate(prevProps, prevState) {
    if (prevState.something !== this.state.something) {
        // do something
    }

    if (prevProps.something !== this.props.something) {
        // do something
    }
}

我想如果组件更新时有很多prevState / prevProps比较,它会增长很长的时间。

是否有更好的方法来组织其中的代码,或者只是这样?

1 个答案:

答案 0 :(得分:0)

没有其他方法可以减少该代码。相反,您可以做的是将所有内容存储在一个状态中,例如数组。这样您就只能使用一种状态来更新组件。

请考虑一种状态,该状态存储以下数据。

something: {
    var1: "...",
    var2: "...",
    arr: [ "var1": "...",
           "var2": "..." 
         ],
    num1: '20', 
    .... };

如下所示,您只能拨打一次,否则可以多次拨打:

componentDidUpdate (prevProps) {
    if (prevProps.something !== this.props.something) {
      ...
    }
}