React为啥很多类里的标签上事件处理函数要用bind(this)

时间:2021-05-11 21:04:56

  

    render() {
return (
<div>
<p onClick={this.clickHandler.bind(this)}>vz</p>
</div>
)
}
clickHandler() {
console.log(
this.clickHandler);
}

上面标签里若不使用bind的话,点击p标签会报错,因为clickHandler运行时this不指向类的实例,若要指向类的实例,就需要bind绑上。

其实有时候不用bind改变函数作用域也没问题,哪种情况呢,就是clickHandler定义里不涉及到this指向,如上面的clickHandler里改成console.log('12345')。