gpt4 book ai didi

javascript - 什么时候使用 this.getInitialView = this.getInitialView.bind(this);

转载 作者:行者123 更新时间:2023-11-30 15:36:22 24 4
gpt4 key购买 nike

我正在关注 Getting started with React Native and Firebase媒体教程。我遇到了以下代码。

constructor(props) {
super(props);
Firebase.initialise();
this.getInitialView();
this.state = {
userLoaded: false,
initialView: null
};
//What this code does?
this.getInitialView = this.getInitialView.bind(this);
}

getInitialView() {
firebase.auth().onAuthStateChanged((user) => {
let initialView = user ? "Home" : "Login";
this.setState({
userLoaded: true,
initialView: initialView
})
});
}

有人可以解释下面的声明吗?我应该何时以及为何使用它?有哪些优点?

this.getInitialView = this.getInitialView.bind(this);

最佳答案

基本上任何时候你想使用this,你都希望它引用组件。 ES6 类不会自动绑定(bind),因此有多种方法可以处理此问题:

  1. 您可以像示例中那样在构造函数中进行绑定(bind)。
  2. 您可以在调用方法的任何位置使用箭头函数:( ) => this.getInitialView( )
  3. 您可以引入一个库来为您自动绑定(bind)方法。
  4. 我这样做:定义方法时,这样做,因为箭头函数不定义自己的范围:

    getInitialView = () => {
    firebase.auth().onAuthStateChanged((用户) => {
    让 initialView = 用户? “主页”:“登录”;
    this.setState({
    用户加载:真,
    初始 View :初始 View
    })
    });
    }

关于javascript - 什么时候使用 this.getInitialView = this.getInitialView.bind(this);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41469216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com