0

谁能解释一下这个 onAuthStateChanged 函数是如何在 componentDidMount 中工作的。我知道这个生命周期钩子只在组件安装时执行一次。那么里面的函数是怎么执行的呢?

我假设它就像回调函数,它在事件循环中继续运行,因为当状态改变时被触发,比如 JS 中的 addEventlistner。

componentDidMount() {
    console.log("Context Mounted");
    firebaseapp.auth().onAuthStateChanged((user) => {
      if (user) {
        this.setState({ currentUser: user });
        console.log("User Signed IN ");
      } else {
        console.log("THERE IS NO USER");
      }
    });
  }
4

1 回答 1

0

你几乎明白了它的要点:在你onAuthStateChanged 用 Firebase 注册你的回调之后,它将被调用:

  1. “立即”与当前身份验证状态
  2. 每当该身份验证状态发生变化时

由于您调用setState将用户置于状态,因此只要发生上述事件之一,就会触发 UI 的重新呈现。

这一直持续到应用程序退出或直到您取消注册侦听器,您通常应该componentWillUnmount在同一组件的方法中执行此操作。

于 2020-12-11T19:56:21.840 回答