Javascript 用于状态更改的单个函数没有具有类似名称的多个状态

Javascript 用于状态更改的单个函数没有具有类似名称的多个状态,javascript,arrays,reactjs,function,Javascript,Arrays,Reactjs,Function,我正在尝试创建一个状态更改函数,在多个状态上 我在构造函数()中有以下状态 我有这个问题组件,它是一个标签和6个单选按钮,用于回答问题 我为这个组件创建了5个实例 <Question addAnswer={this.addAnswer} title="...." /> <Question addAnswer={this.addAnswer} title="..." /> .... 此功能将仅更改应答1状态 那么如何让它像这样工作呢 addAnswer = (answe

我正在尝试创建一个状态更改函数,在多个状态上

我在
构造函数()中有以下状态

我有这个问题组件,它是一个
标签和6个单选按钮,用于回答问题

我为这个组件创建了5个实例

<Question addAnswer={this.addAnswer} title="...." />
<Question addAnswer={this.addAnswer} title="..." /> 
....
此功能将仅更改应答1状态

那么如何让它像这样工作呢

addAnswer = (answerNumber,answerValue) => {
    this.setState({ answer + answerNumber: answerValue },()=>console.log(this.state.answer + answerNumber))
}
这样的功能可能吗


是否可以选择将应答状态设置为数组,以及如何确定该数组的哪个索引被应答以及以后的更改

我更喜欢将属性的全名作为参数传递给函数,而不仅仅是一个数字。我认为它看起来更可读,更容易理解

像这样:

addAnswer = (answerCode, answerValue) => {
    this.setState({ [answerCode]: answerValue }, () => 
        console.log(this.state[answerCode])
    )
}
如果我是你,我可能会改变结构,使其看起来像这样:

{ 
    "answers": {
        1: {
            "code": 1,
            "value": "Yes"
        }
    }
}
然后,将值传递给减速器时,可以传递整个应答对象:

{
    "code": 2,
    "value": "No"
}
并添加一个新的答案:

addAnswer = (answer) => {
    this.setState({ [answer.code]: answer })
}

我更喜欢将属性的全名作为参数传递给函数,而不仅仅是一个数字。我认为它看起来更可读,更容易理解

像这样:

addAnswer = (answerCode, answerValue) => {
    this.setState({ [answerCode]: answerValue }, () => 
        console.log(this.state[answerCode])
    )
}
如果我是你,我可能会改变结构,使其看起来像这样:

{ 
    "answers": {
        1: {
            "code": 1,
            "value": "Yes"
        }
    }
}
然后,将值传递给减速器时,可以传递整个应答对象:

{
    "code": 2,
    "value": "No"
}
并添加一个新的答案:

addAnswer = (answer) => {
    this.setState({ [answer.code]: answer })
}

我建议您迭代一些数据数组,其中包含例如标题:


注意:您没有指定
应答值
道具来自哪里+
i
0开始
我建议您迭代一些数据数组,其中包含例如标题:


注意:您没有指定从哪里
应答值
道具来自+
i
0开始

应答${i}
给了我一个意外的令牌错误。。。有什么想法吗?@ГББППиааааааааааааа。只需尝试一下
“answer”+i
answer${i}
就会给我一个意外的令牌错误。。。有什么想法吗?@ГББППиааааааааааааа。只需尝试
“回答”+i