1. 程式人生 > >React為啥很多類裏的標簽上事件處理函數要用bind(this)

React為啥很多類裏的標簽上事件處理函數要用bind(this)

return 運行 情況 col 有時 code urn ole ret

  

    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)