状态数组在方法调用后被清空

时间:2019-05-18 16:47:46

标签: javascript arrays reactjs bind

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

从我打电话的那一刻起,状态数组就变空了:

  • this.startSearch.bind(this)

因此该方法不能使用状态数组,因为它完全为空。

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>
    )
  }
}

知道我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:0)

this.startSearch需要做(e)=> this.setState({searchInput:e.target.value}) 但是如果它在本机上反应,我不认为onInput可以工作