Javascript 将数据从多个输入推送到状态数组

Javascript 将数据从多个输入推送到状态数组,javascript,arrays,reactjs,jsx,Javascript,Arrays,Reactjs,Jsx,我的程序生成的输入很少,我尝试将数据推送到我所在州的数组中 export default class TransmittersTable extends Component { constructor() { super() this.state = { axisX: [], axisY:[], power: [], } } updateAxisX(e) { this.setState({ axisX:

我的程序生成的输入很少,我尝试将数据推送到我所在州的数组中

export default class TransmittersTable extends Component {
  constructor() {
    super()
    this.state = {
      axisX: [],
      axisY:[],
      power: [],
    }
  }
  updateAxisX(e) {
    this.setState({
      axisX: this.state.axisX.push(e.target.value)
    })
  }
  updateAxisY(e) {
    this.setState({
      axisY: this.state.axisY.push(e.target.value)
    })
  }
  updateAxisPower(e) {
    this.setState({
      power: this.state.power.push(e.target.value)
    })
  }
  generateTransmittersItems(){
    let transmitters = [];
    for(let i = 0; i < this.props.numberOfTransmitters; i++) {
      transmitters.push(
        <tr>
          <td><input id={i} ref="axisX" type="text" onChange={this.updateAxisX.bind(this)}/></td>
          <td><input id={i} ref="axisY" type="text" onChange={this.updateAxisY.bind(this)}/></td>
          <td><input id={i} ref="power" type="text" onChange={this.updateAxisPower.bind(this)}/></td>
        </tr>
      );
    }
    return transmitters
  }
  componentWillMound(){}
  render() {
    return (
      <table>
        <thead>
          <tr>
            <th>Axis X</th>
            <th>Axis Y</th>
            <th>Power</th>
          </tr>
        </thead>
        <tbody>
          {this.generateTransmittersItems()}
        </tbody>
      </table>
    )
  }
}
导出默认类TransmittersTable扩展组件{
构造函数(){
超级()
此.state={
axisX:[],
axisY:[],
电源:[],
}
}
updateAxisX(e){
这是我的国家({
axisX:this.state.axisX.push(e.target.value)
})
}
更新轴(e){
这是我的国家({
axisY:this.state.axisY.push(e.target.value)
})
}
updateAxisPower(e){
这是我的国家({
电源:this.state.power.push(e.target.value)
})
}
generateTransmittersItems(){
设发射机=[];
for(设i=0;i
在第一行输入中,evrything是可以的,但如果我尝试将另一行输入中的另一个值推送到同一个状态数组(例如axisX),我的控制台会向我发送此错误“this.state.axisX.push不是函数”。
我做错了什么?我必须做什么才能使用相同的函数将更多的值从输入推送到相同的数组?

我认为问题与反应状态问题无关。 使用“push”方法时,它不会返回数组,而是返回数组的长度,这就是为什么在第二次使用“push”方法时会出现错误“this.state.axix.push不是函数”的原因

因此,如果需要更改状态,可以使用如下“concat”方法获取一个新数组作为返回:

this.setState({
  axisX: this.state.axisX.concat([e.target.value])
})
var a=[“嗨”,“那里”];
var b=a.push(“Oh”);
控制台日志(b);//获取3,而不是数组

console.log(a);//[“嗨”,“那里”,“哦”]
id应该是唯一的,不是吗?在我看来,你也应该使用这个: