今天写页面,出了个诡异的报错。
看见时候一头雾水。
_this7.setState is not a function嘛意思?我没定义_this7啊,为啥提示我他不是函数?
面向百度走了一波,算是明白了。虽然报错是说_this7不是一个函数,但是其实错不在这里,而是在this指向的问题。
报错的地方只是一个下拉框搜索,很简单的一个逻辑。话不多说,看代码吧:
class Dapp extends Component {
// 上架状态下拉框事件
handleChange(value){
let params = {
"status": value,
}
// 传参调用全部数据接口
this.getList(params)
}
render(){
return(
<div>
<Select
showSearch
style={{ width: 200 }}
// 选择框默认文字
placeholder="全部"
// 选项变化时触发事件
onChange={this.handleChange}
>
<Option value="">所有</Option>
<Option value="0">冻结</Option>
<Option value="1">上架</Option>
</Select>
</div>
)
}
}
之所以出现这个报错,原因就在于onChange,选项变化时触发的handleChange事件,this的指向问题。
使用bind()给他绑定this,就能解决这个问题。
所以这一行修改后的代码为:
onChange={this.handleChange.bind(this)}
给他绑定了this指向之后,这个问题就迎刃而解喽~~~~
网友评论