Reactjs 将推送事件.target.value响应到数组

Reactjs 将推送事件.target.value响应到数组,reactjs,jsx,Reactjs,Jsx,我是个新手,现在在尝试将输入框的值推入数组时遇到了一个问题。如果你能帮助我,我将不胜感激 一般来说,我希望将多个输入框的输入值保存到一个数组中。所有输入框都调用相同的onChange函数(因为输入框是由map生成的,所以它们必须使用相同的onChange函数) 这是我的密码 class App extends Component { constructor(){ super(); this.state = { SCAnswer:"", SCAnswerGrou

我是个新手,现在在尝试将输入框的值推入数组时遇到了一个问题。如果你能帮助我,我将不胜感激

一般来说,我希望将多个输入框的输入值保存到一个数组中。所有输入框都调用相同的onChange函数(因为输入框是由map生成的,所以它们必须使用相同的onChange函数)

这是我的密码

class App extends Component {
  constructor(){
  super();
  this.state = {
      SCAnswer:"",
      SCAnswerGroup: []
    }
  }

  handleChange(event){
    this.setState({SCAnswer: event.target.value});
    const SCAnswerGroup = this.state.SCAnswerGroup;
    SCAnswerGroup.push(this.state.SCAnswer);
    this.setState({SCAnswerGroup});
  }

  BuildAnswerGroup(){
    const n = this.state.DropdownValue;
    if (this.state.DropdownValue ==="Number of answers") {
        return(<div></div>)
    }
    else {
    return [...Array(n)].map((e, i) => 
    <div key={i} className="SingleChoiceAnswers">
       <input onChange={this.handleChange.bind(this)} size="100%" type="text" className="SingleChoiceAnswer"/>
    </div>   
    )}}

  render(){
    return(
    ...
    { this.BuildAnswerGroup()}
    )
  }
}
类应用程序扩展组件{
构造函数(){
超级();
此.state={
扫描者:“,
扫描组:[]
}
}
手变(活动){
this.setState({SCAnswer:event.target.value});
const SCAnswerGroup=this.state.SCAnswerGroup;
SCAnswerGroup.push(this.state.SCAnswer);
this.setState({SCAnswerGroup});
}
BuildAnswerGroup(){
const n=this.state.DropdownValue;
if(this.state.DropdownValue==“答案数”){
返回()
}
否则{
return[…数组(n)].map((e,i)=>
)}}
render(){
返回(
...
{this.BuildAnswerGroup()}
)
}
}
例如,如果两个输入框的输入为“是”、“否”,则SCAnswerGroup的预期值为[“是”、“否”]。然而,我得到的是[“YYeYesN”]。我认为每个字母的更改都会保存到数组中,但最后一个字母除外。你能帮我得到预期的结果吗


提前非常感谢

您可以将另一个参数索引传递给
handleChange
函数,然后在函数中更改数组中的索引

handleChange(event, i){
  this.setState({SCAnswer: event.target.value});
  const SCAnswerGroup = this.state.SCAnswerGroup;
  SCAnswerGroup[i] = event.target.value;
  this.setState({SCAnswerGroup});
}
// in the render method
<input onChange={(event) => this.handleChange(event, i)} />
handleChange(事件,i){
this.setState({SCAnswer:event.target.value});
const SCAnswerGroup=this.state.SCAnswerGroup;
SCAnswerGroup[i]=event.target.value;
this.setState({SCAnswerGroup});
}
//在渲染方法中
this.handleChange(event,i)}/>

您的HandleCharge方法中有错误,但在尝试回答之前,请在此处发布整个组件,包括渲染等。是的,我知道有错误。整个组件相当大,包括子组件和孙子组件。我只是发布了有错误的部分(handleChange())。我添加了一些,希望现在就足够了