注册事件时,处理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>
)
}
记录一下,如有错误,还请斧正