【问题标题】:Updating react state with a similar object用类似的对象更新反应状态
【发布时间】:2019-12-18 18:54:31
【问题描述】:

请注意,这是我的代码的一个非常简单的示例。我有一个状态:

this.state = {
  first: "",
  second: "",
  third: ""
}

我想像这样改变我的状态:

this.getAppData(localStorage.getItem("application_id")).then(res => this.setState( prevState => {
        ...prevState.state,
        res.data
}))

而 res.data 是:

{
first: "updatedValue1",
third: "updatedValue2"
}

【问题讨论】:

    标签: reactjs state


    【解决方案1】:

    这就是答案,所有 res.data 键值现在都会覆盖匹配的状态值:

            this.getAppData(localStorage.getItem("application_id")).then(res =>
                this.setState({ ...this.state, ...res.data })
            );
    

    【讨论】:

    • ...this.state 是不必要的,因为 setState 进行合并而不是替换。
    【解决方案2】:

    试试这个

        this.getAppData(localStorage.getItem("application_id")).then(res =>
            this.setState((state) => ({ ...state, ...res.data }))
        );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 2021-06-15
      相关资源
      最近更新 更多