关键字的价值

时间:2019-07-10 16:39:25

标签: javascript reactjs

看看下面的代码:

class App extends React.Component {


  go(){
    console.log("Hello",this);
  }
  render() {
    console.log("Hey",this);

    return ( 
      <button onClick={this.go}>Add profile</button>
    );
  } 
}

为什么thisgo的值未定义? this中的render是一个App实例,由于我们调用this.go,因此方法this中的go的值应等于相同的{ {1}}实例。

1 个答案:

答案 0 :(得分:2)

您需要绑定go或使用箭头功能:

export default class App extends React.Component {
  go = () => {
    console.log('Hello', this);
  };
  render() {
    console.log('Hey', this);

    return <button onClick={this.go}>Add profile</button>;
  }
}