React native React Native和此关键字

React native React Native和此关键字,react-native,React Native,我正在将Facebook登录集成到我正在构建的React原生应用程序中。我有以下代码: class FacebookButton extends Component { constructor(props) { super(props); this.fetchAccessToken = this.fetchAccessToken.bind(this); } facebookButtonPressed() { LoginManager.logInWithRe

我正在将Facebook登录集成到我正在构建的React原生应用程序中。我有以下代码:

class FacebookButton extends Component {

  constructor(props) {
    super(props);
    this.fetchAccessToken = this.fetchAccessToken.bind(this);
  }

  facebookButtonPressed() {
    LoginManager.logInWithReadPermissions(['public_profile']).then((result) => {
      if (result.isCancelled) {
        console.log('Login Cancelled');
      } else {
          this.fetchAccessToken();
      }
    })
    .catch((error) => {
      console.log('Login fail with error: ' + error);
    });

  }

  fetchAccessToken() {
    AccessToken.getCurrentAccessToken().then((data) => {
        const { accessToken } = data
        console.log(accessToken);
    })
    .catch(() => {
      console('Error getting access token');
    });
  }
  render() {
    return (
      <Button
          onPress={this.facebookButtonPressed}
          title="Sign In with Facebook"
          color="#000000"
      />
    );
  }

}

您还需要将构造函数中的
facebook按钮pressed()
绑定到
fetchAccessToken
作为

constructor(props) {
        super(props);
        this.facebookButtonPressed = this.facebookButtonPressed.bind(this)
        this.fetchAccessToken = this.fetchAccessToken.bind(this);
    }
调用函数时,将创建一条激活记录,也称为执行上下文。此记录包含有关从何处调用函数(调用堆栈)、如何调用函数、传递了哪些参数等信息

现在不引用它,除非绑定它

下面是一些不同的方法。这些方法的优点和缺点已经解释过了

此外,您还可以从

constructor(props) {
        super(props);
        this.facebookButtonPressed = this.facebookButtonPressed.bind(this)
        this.fetchAccessToken = this.fetchAccessToken.bind(this);
    }