react事件 報錯Cannot read property 'setState' of undefined


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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM