我想寻找人。数据数组存储在redux存储中。我正在尝试执行搜索,但是发生错误。
Cannot read property 'searchInput' of undefined
可能是什么问题?
searchHandler(){
console.log('findUser', this.searchInput.value);
this.props.onFindPeople(this.searchInput.value)
}
我添加了一个示例code
答案 0 :(得分:2)
您将this
的上下文丢失给事件处理程序。
您可以使用arrow function(对this
使用词法上下文):
searchHandler = () => {
console.log("findUser", this.searchInput.value);
this.props.onFindPeople(this.searchInput.value);
}
或bind到这样的班级:
constructor(props){
super(props);
this.searchHandler = this.searchHandler.bind(this);
}
我们在constructor
中这样做,因为它只会运行一次。
答案 1 :(得分:1)
您没有绑定功能。您需要将其绑定到如下所示的构造函数中。需要绑定才能访问此状态并访问状态,支持和修改状态。
请注意,您只需要在构造函数中绑定它,而不必在组件中的其他任何地方绑定
constructor(props){
super(props);
this.searchHandler = this.searchHandler.bind(this);
}
searchHandler(){
console.log('findUser', this.searchInput.value);
this.props.onFindPeople(this.searchInput.value);
}
或者您也可以使用箭头功能,如Sagiv在他的回答中所述。