gpt4 book ai didi

javascript:使用索引作为参数更新 Array() 中的属性值

转载 作者:行者123 更新时间:2023-12-01 01:41:43 24 4
gpt4 key购买 nike

目前,我有一个 react 函数,可以从名为rents的数组中删除当前完美的租金。问题是我需要更新称为状态的租金行值并将属性从 1 设置为 4,下面的代码有效。我似乎不知道如何获取租金指数来更新它。

removeItem (itemIndex) {
this.state.rents.splice(itemIndex, 1) // removes the element
this.setState({rents: this.state.rents}) // sets again the array without the value to the rent prop
console.log(itemIndex) // itemIndex
}

目前我正在将其添加到代码中进行调试,但出现此错误

console.log(this.state.rents[itemIndex].unique_key)

堆栈跟踪

TypeError: Cannot read property 'unique_key' of undefined

我需要能够将名为 status 的租金属性值从 1 更新为 4,并再次setState

最佳答案

要详细说明评论,首先从最重要的开始:

就像@devserkan所说,你永远不应该改变你的状态(和 Prop ),否则你会开始看到一些非常奇怪、难以理解的错误。操作状态时,始终创建它的副本。您可以阅读更多here .

现在回答你的问题:

this.setState 是异步的,因此要获取状态的更新值,您应该使用回调函数

const rents = [...this.state.rents]; // create a copy
rents.splice(itemIndex, 1);
this.setState({ rents }, () => {
console.log(this.state.rents); // this will be up-to-date
});
console.log(this.state.rents); // this won't

关于javascript:使用索引作为参数更新 Array() 中的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52341233/

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