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.
 
 
 
 
 

27 lines
868 B

import React from 'react'
class Test extends React.Component {
handler() {
// 错误演示
console.log(this) // 这里的 this 是 undefined
// this.setState 去修改数据还可以修改数据吗? 会报错
}
render() {
/* render 函数中的 this 已经被 react 内部做了修正
这里的 this 就是指向当前的组件实例对象
函数箭头中的 this 直接沿用,所以也是指向组件的实例对象 */
console.log('父函数中的 this 指向为:', this)
return (
/* 第二种修正方法:
如果不用 constructor 做修正,直接可以在事件绑定的位置通过箭头函数的写法,直接沿用父函数中的this指向也是可以的 */
<button onClick={() => this.handler}>click</button>
)
}
}
function App() {
return <Test></Test>
}
export default App