我目前正在学习React。有人向我介绍了“ this”关键字的问题。基本上我了解它是如何工作的,但是在反应或者在ES6课上我发现自己很困惑。例如,我使用方法 onFormSubmit 使用下面的类 SearchBar 。如果我尝试在此方法内 console.log(this.state.term),它将抛出 undefined property 的错误。 我知道如何解决此错误(箭头功能,绑定等),这不是我的问题。我的问题是我不明白为什么它不能在OnFormSubmit()方法上使用,但是如果我在render()方法中使用console.log(this.state.term),它将可以使用。
import React from 'react';
class SearchBar extends React.Component {
state = {term: ''};
onFormSubmit(e) {
e.preventDefault();
console.log(this.state.term); //here is the error "cannot read of undefined property"
}
render() {
return(
<div className="ui segment">
<form onSubmit={this.onFormSubmit} className="ui form">
<div className="field">
<label>Image Search</label>
<input
type="text"
value={this.state.term}
onChange={(e) => this.setState({term: e.target.value})}
/>
</div>
</form>
</div>
);
}
}
export default SearchBar;