React 事件处理

106 阅读1分钟

注册事件时,处理this报错的三种方式:

constructor() {
    this.handler = this.handler.bind(this)
}
handler() {
    // ...
}
render() {
    return (
        <button onClick={this.handler}></button>
    )
}
handler = () => {
    // ...
}
render() {
    return (
        <button onClick={this.handler}></button>
    )
}
// 问题在于每次渲染组件时都会创建不同的回调函数,大部分情况下没问题,如果这个回调函数作为prop传入子组件,可能会导致子组件的额外重新渲染。
handler() {
    // ...
}

render() {
    return (
        <button onClick={() => this.handler()}></button>
    )
}

记录一下,如有错误,还请斧正