首页 > 代码库 > React为啥很多类里的标签上事件处理函数要用bind(this)

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

  

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

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

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

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