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
。