javascript - 方法调用后状态数组被清空
问题描述
我正在尝试对 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>
)
}
}
知道我在这里错过了什么吗?
解决方案
this.startSearch 需要做 (e)=> this.setState({searchInput:e.target.value}) 但如果它是反应原生的,我不认为 onInput 工作
推荐阅读
- mongodb - MongoDB 从其他数组重新运行 Items 数组,减少数据点
- c# - 根据列表<>中字符串的计数,这是输出数字的正确方法
- reactjs - 如何在 React-Bootstrap 中使用道具图像?
- css - 如何垂直居中对齐不同高度项目的水平列表的底部
- javascript - 如何在注册期间确认重新输入期间修复我的密码验证规则?
- python - 删除 Pandas 中带有空标签的列
- c - 如何获取结构形式的二进制文件?
- r - R从数据框列创建数据框的方法
- javascript - 将 Promise 的值存储到变量中,以便稍后与状态一起使用。(反应原生)
- java - JAR 在 Lucee 上找不到 BouncyCastleProvider