首页 > 解决方案 > 方法调用后状态数组被清空

问题描述

我正在尝试对 React 状态数组执行过滤器。从渲染我调用搜索方法。

从我打电话的那一刻起,状态数组就以某种方式被清空:

所以该方法不能使用状态数组,因为它是完全空的。

export default class ItemList extends Component {
  state = {
    itemList: []
  }

  startSearch(input) {
    console.log(this.state.itemList)
  }

  render() {
    //load Json
    let filteredArray = Data.filter(
      (item1) => {
        return
        item1.title.indexOf(this.state.searchInput.charAt(0).toUpperCase()) !== -1;
      }
    )
    this.setState({ itemList: filteredArray })

    return (
      <input type="text" id="inputField" value={this.state.searchInput} onInput={this.startSearch.bind(this)}></input>
    )
  }
}

知道我在这里错过了什么吗?

标签: javascriptarraysreactjsbind

解决方案


this.startSearch 需要做 (e)=> this.setState({searchInput:e.target.value}) 但如果它是反应原生的,我不认为 onInput 工作


推荐阅读