javascript - 将原生 setState 与数组 react

标签 javascript arrays reactjs react-native state

有没有办法可以用数组设置状态?

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/

相关文章:

javascript - 使用 for 循环在 Javascript 中创建仅包含重复项的新数组

javascript - 使用 Ext.util.Sortable 对数组进行排序

javascript - 2D JS 数组为每个索引分配值

java - 二维数组但带有索引 - java

javascript - 使用 ReactJS 在 ES6 类中嵌套 "this"绑定(bind)

javascript - ajax日历控件错误

javascript - 如何在javascript中随机制作音频文件数组

javascript - Bootstrap 导航栏折叠切换按钮未单击

javascript - 无法在 react-native 中发送表单数据

javascript - 根据所选的下拉值隐藏或显示数据