You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

29 lines
860 B

import React from 'react'
class Test extends React.Component {
// constructor 属性返回对象的构造函数,用于创建和初始化在类中创建的对象
constructor() {
super()
/* 第一种修正 this 指向的方法:
使用 bind 强行修正我们的 this 指向
相当于在类组件初始化的阶段,就可以把回调函数的 this 修正到
永远指向当前组件实例对象 */
this.handler = this.handler.bind(this) // 前面的 this.handler 是挂载到实例属性上,后面的 this.handler 是下面 handler() 方法
}
handler() {
// 错误演示
console.log(this) // 这里的 this 是 undefined
// this.setState 去修改数据会报错
}
render() {
return <button onClick={this.handler}>click</button>
}
}
function App() {
return <Test></Test>
}
export default App