import React, { Component } from "react";
export class TestHanderClick extends Component {
//有構造器state寫在里面, 構造器中必須要有super並且傳遞參數
constructor(props) {
super(props);
this.state = {
num: 100,
};
}
myChuFa() {
alert("被觸發了");
// 報錯 Cannot read property 'setState' of undefined
// 說明state這個對象是未定義的,如何解決呢
this.setState({
num: this.state.num + 10,
});
}
render() {
// this是這個組件
return (
<div>
<div>{this.state.num}</div>
<div onClick={this.myChuFa}> 我是事件</div>
</div>
);
}
}
export default TestHanderClick;
初次看這個代碼是沒有問題的,但是你會點擊后會發現報錯
報錯 Cannot read property 'setState' of undefined
說明state這個對象是未定義的,如何解決呢
只需要將
<div onClick={this.myChuFa}> 我是事件</div>
改成為
<div onClick={this.myChuFa.bind(this)}> 我是事件</div>