【发布时间】:2020-09-10 01:40:19
【问题描述】:
我正在开发一个闪存卡反应应用程序。我已将我的状态初始化为一个对象数组(用户一次最多只能添加 10 个术语/定义,因此限制为 10 个),如下所示:
state = {
allTerms: [
{
term: '',
def: ''
},
{
term: '',
def: ''
},
{
term: '',
def: ''
},
{
term: '',
def: ''
},
{
term: '',
def: ''
},
{
term: '',
def: ''
},
{
term: '',
def: ''
},
{
term: '',
def: ''
},
{
term: '',
def: ''
},
{
term: '',
def: ''
}
]
}
输入来自一个动态表单,该表单根据用户想要添加的卡片数量提供 X 个输入字段。我当前的问题是我的 onChange 函数。当用户在输入字段中键入内容时(现在专注于术语和图形,我可以使用类似的解决方案进行定义)更改调用我的 onChangeTerm 函数,其中我有一个 for 循环:
onChangeTerm = (event) => {
for(var i = 0; i < this.props.numberOfTerms.length; i++) {
this.setState({ allTerms[i].term: event.target.value});
}
}
我遇到了 setState 行的问题。我的想法是 allTerms 是我处于状态的数组。我想将事件(来自用户的输入)的值设置为数组的 i 元素(在用户想要添加多张卡片的情况下,随着 for 循环运行而增加),特别是每个中的 term 属性目的。但是,我得到一个无法编译的错误。为什么这个 setState 行不起作用?我的逻辑对我来说很有意义,但我似乎遗漏了一些东西......我的语法是否混乱?或者在为一组对象设置状态时,我是否缺少逻辑?感谢您的任何想法。
【问题讨论】:
标签: javascript arrays reactjs object setstate