反应:状态同步失败。或state.sth.map不是函数

时间:2020-08-24 16:03:09

标签: arrays reactjs list setstate

我正在尝试通过将事件添加到我设置为状态的事件数组中来向列表添加新的输入值。但是在我通过将新值推入内部来更新数组之后,列出它们的.map方法似乎没有赶上新添加的数组。

constructor(props) {
    super(props)
    this.state = {
        itemsReversed: ['Event 1', 'Event 2', 'Event 3', 'Event 4', 'Event 5'].reverse(),
    }
}
ComponentDidMout() {
  this.addEvent = () => {
        let newEvent = document.getElementById('newEvent').value
        this.state.itemsReversed.push(newEvent)
        console.log(this.state.itemsReversed)
    }
}



<input type='text' id='newEvent' name='newEvent' />
<button type='button' className='btnAdd' onClick={this.addEvent}>Add</button><br />

enter image description here

然后我尝试使用this.setState更新旧状态数据,它显示了一个

“ TypeError:this.state.itemsReserved.map不是函数”

    ComponentDidMout() {
      this.addEvent = () => {
            let newEvent = document.getElementById('newEvent').value
            this.setState ({
                itemsReversed: this.state.itemsReversed.push(newEvent)
            })
        }
    }

任何人都知道问题出在哪里以及如何解决?

0 个答案:

没有答案