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

Javascript 状态数组在方法调用后清空,javascript,arrays,reactjs,bind,Javascript,Arrays,Reactjs,Bind,我正在尝试对React状态数组执行筛选。从渲染中,我调用搜索方法 不知怎的,状态数组从我调用的那一刻起就被清空了: this.startSearch.bindthis。 因此,该方法无法使用状态数组,因为它是完全空的 export default class ItemList extends Component { state = { itemList: [] } startSearch(input) { console.log(this.state.itemLis

我正在尝试对React状态数组执行筛选。从渲染中,我调用搜索方法

不知怎的,状态数组从我调用的那一刻起就被清空了:

this.startSearch.bindthis。 因此,该方法无法使用状态数组,因为它是完全空的

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

知道我遗漏了什么吗?

this.startSearch需要执行e=>this.setState{searchInput:e.target.value}
但是如果是在react native上,我不认为onInput work

可以共享更多来自组件的代码吗?^^^理想情况下,用演示问题的代码更新您的问题,最好是使用[]工具栏按钮的堆栈片段运行问题。堆栈代码段支持React,包括JSX@DJYadav我在问题中添加了更多的代码。你能添加填充数组的部分吗?或者正如T.J.所说,请添加一段可运行的代码片段?代码中有很多问题。1没有变量数据,并且在运行筛选器逻辑之前已写入返回2您不在渲染方法内部设置状态。3 FilterDarray逻辑应位于输入元素的onChange或onInput处理程序中。请更正这些问题并编辑问题,以便我们能够帮助您。