可变的最佳实践 | 不可变对象

我们应该使用第一种方式还是第二种方式来更新状态中的设置对象?哪个是可变的最佳实践?不变的概念?


state = {

  settings: {

    at: [],

    // other keys

  }

}



addHour = () => {

    const { settings } = this.state;


    const time = moment();

    time.set({ minutes: 0, seconds: 0 });


    // First Way

    settings.at.push(time);

    this.setState({ settings });


    // Second Way

    const new_settings = {

        ...settings

        at: [...settings.at, time]

    }

    this.setState({ settings: new_settings });

};


白猪掌柜的
浏览 111回答 3
3回答

呼唤远方

在第一种方式中,您仍然在改变原始状态对象。它被称为对原始对象的引用。第二种方法是对状态进行克隆。它的2个不同的对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript