class EventDemo extends React.Component {
constructor(props) {
super(props)
this.state = {
name: 'zhangsan',
}
// 修改方法的 this 指向
// this.clickHandler1 = this.clickHandler1.bind(this)
}
// 普通函数
clickHandler1() {
// 在转译过程中,因为Babel是严格模式‘use strict’下进行的,不允许函数里的this指向window,所以这里的this指向undefined
console.log('this....', this) // undefined
}
// 箭头函数
// 箭头函数不绑定this,它会捕获其定义时的位置上下文的this值, 作为自己的this值
clickHandler2 = () => {
this.setState({
name: 'lisi'
})
}
render() {
// this - 使用 bind
return <p onClick={this.clickHandler1}>
{this.state.name}
</p>
// return <p onClick={this.clickHandler2}>
// clickHandler2 {this.state.name}
// </p>
}
}
export default EventDemo