gpt4 book ai didi

javascript - 如何动态获取状态数组名称 React

转载 作者:行者123 更新时间:2023-11-30 08:20:40 26 4
gpt4 key购买 nike

如何在状态中动态设置数组的名称,以便从状态中获取它。

onCheckBoxItemClickList(e, value, path) {
console.log(e.target.checked)
if (e.target.checked) {
//append to array
this.setState({
[path]: this.state.[path].concat([value])
})
} else {
//remove from array
this.setState({
[path]: this.state.[path].filter(function (val) {
return val !== value
})
})
}
}

我知道如何动态设置和获取状态中的键,但是当我尝试做

[路径]: this.state.[path].concat([value])

我收到以下错误:

error Image

任何帮助将不胜感激,谢谢

最佳答案

您的代码中有一个额外的点(在状态之后):

[path]: this.state.[path].concat([value])

应该是:

[path]: this.state[path].concat([value])

然后,每当你想根据之前的状态设置状态时,你应该使用 setState ,它接受一个回调,并将 prevState 作为参数。

所以你的代码应该是这样的:

onCheckBoxItemClickList(e, value, path) {
console.log(e.target.checked)
if (e.target.checked) {
//append to array
this.setState(prevState => ({
[path]: prevState[path].concat([value])
}))
} else {
//remove from array
this.setState(prevState => ({
[path]: prevState[path].filter(function (val) {
return val !== value
})
}))
}
}

关于javascript - 如何动态获取状态数组名称 React,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54129355/

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