gpt4 book ai didi

javascript - 意外的 react 组件状态值更改

转载 作者:行者123 更新时间:2023-11-30 14:26:19 24 4
gpt4 key购买 nike

我正在尝试更新 state 值,但首先我将它加载到另一个 var 并在对新的 var 进行更改后将要 setState 并更新原始 state 值。但出乎意料的是,对临时 var 所做的更改已经更改了 component state 值!

var postData = this.state.postData;
postData.likes = postData.likes + 1;
console.log(postData.likes, this.state.postData.likes);

console.log 值: (1, 1) (2, 2) ...

最佳答案

因为 postData 是一个对象,不要将它直接保存在另一个变量中,因为那样会创建对状态中的对象的引用,而不是副本。如果它是一个引用,更改一个将更改另一个,因为它们都指向同一个对象。

先复制一份"

    var postData = Object.assign({}, this.state.postData)

然后改变它。然后当你完成后,使用 setState({postData})

关于javascript - 意外的 react 组件状态值更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51894024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com