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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)的主要内容,如果未能解决你的问题,请参考以下文章

为啥以及何时需要在 React 中绑定函数和事件处理程序?

为啥div里的onclick()事件不起作用?不会jq

React 组件中的事件处理组件(受控非受控)函数柯里化

字符串在类里的操作

为啥div里的onclick()事件不起作用?不会jq

React两大组件,三大核心属性,事件处理和函数柯里化