我有一个像这样构造的react组件。当用户从下拉菜单中选择时,我想捕捉用户的选择。
当我尝试时,会收到以下错误消息:
“未定义TypeError:无法读取未定义的属性'setState‘”
我正在学习文档中的例子,那么我哪里出错了呢?
export default class SearchPage extends Component {
....
handleChange(e) {
this.setState({
params: {
...this.state.params,
[e.target.name]: e.target.value
}
})
}
render() {
const { county, cause, activity } = this.state
return (
<div className="searchpage">
<form>
<select name="county" onChange={this.handleChange}
.....
发布于 2016-06-09 11:49:42
handleChange
没有绑定到实例。您需要使用内联箭头函数来捕获this
。
<select name="county" onChange={e => this.handleChange(e)}
或(推荐的方式)在构造函数中绑定方法。
constructor() {
super();
this.handleChange = this.handleChange.bind(this);
}
发布于 2016-06-09 11:59:16
这是另一个技巧,以避免将您的函数绑定到.bind(这个)或一些装饰器,或者创建像() => myfunc()这样的匿名函数
handleChange => (e) { }
然后你可以用这个,因为你想在里面
https://stackoverflow.com/questions/37725002
复制相似问题