有没有办法可以用数组设置状态?
this.state={
numberOne:'',
numberTwo:'',
numberThree:'',
}
this.setState({numberOne:1})
this.setState({numberTwo:2})
this.setState({numberThree:3})
上面的代码可以工作,但是下面的代码不行。
this.state={
numbers:['','','']
}
this.setState({numbers[0]:0})
this.setState({numbers[1]:1})
this.setState({numbers[1]:1})
如何使用数组设置状态?
最佳答案
您可以按如下方式进行:
this.setState({ numbers: [1, 2, 3] })
或者,如果您想编辑特定的数组索引,则必须创建该数组的新副本,而不改变状态:
const copied = [...this.state.numbers]
copied[0] = 1
this.setState({ numbers: copied })
<小时/>
请记住,根据数组值类型,可以通过值或引用来完成复制。
对于 bool 值、字符串、数字
数组值,它是通过值完成的(深度复制),并且改变复制的数组值不会影响原始数组值。因此,如果这是您的情况 - 那么您不必担心。
对于对象
数组值 - 复制是通过引用完成的(浅复制),并且您必须小心不要偶然改变原始数组。您可以阅读有关数组复制的更多信息 here .
简而言之:无论您采取什么方法,始终确保不会改变原始(状态)数组。
关于javascript - 将原生 setState 与数组 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51629269/