gpt4 book ai didi

javascript - 我无法在 react 中更新我的数组状态?

转载 作者:行者123 更新时间:2023-12-01 03:15:04 25 4
gpt4 key购买 nike

这是我的代码,不明白为什么这不更新我的 react 状态?

state = {
popUpMessages:[]
}
popUpMessage(id,name) {
console.log("id ",id,"name ",name)
const addUserObject = { id, name };
const newArray = [...this.state.popUpMessages, addUserObject]
console.log("newArray = ",newArray)
this.setState({ popUpMessages: newArray });
}

在此代码中,调用 popUpMessage 来更新状态:

<li  onClick={() => this.popUpMessage(this.props.id,this.props.name)}>{this.props.name}</li>

但是我的状态没有更新,当我尝试登录时,以前的用户对象被删除了?我希望我的状态是这样的对象数组:

[{id:1, name: kim bok joo},{id:2, name: ria atayde}]

最佳答案

The docs say在计算新状态时,不应依赖 this.state 的先前值。

但你这样做:const newArray = [...this.state.popUpMessages, addUserObject]

尝试使用接受先前状态并使用 props 的函数,如文档中所示。

关于javascript - 我无法在 react 中更新我的数组状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45596784/

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