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

时间:2019-01-10 13:04:50

标签: javascript reactjs react-state-management react-state

如何动态地将数组的名称设置为state,以便从state中获取它。

pulp repl

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

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 }) }) } }

我收到以下错误:

error Image

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

1 个答案:

答案 0 :(得分:5)

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

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

应该是:

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

然后,每当您要基于先前的状态设置状态时,都应使用setState作为参数,并接受回调。

因此您的代码应类似于:

prevState