首页 文章

React Mobx Firebase.onAuthStateChanged侦听器

提问于
浏览
1

我总是将 auth.onAuthStateChange().then(user => ... 放在顶级React组件的 componentDidMount() 中 .

然后我会删除 componentWillUnmount() 内的监听器

我的问题是我如何看待这个?我的想法是这样的:

class Store {
  @observable user = null
  @action killFirebaseListener = this.removeListener()
  constructor() {
    this.removeListener = firebase.auth().onAuthStateChange(user => {
      if (user) this.user = user
    })
  }
}

然后,我将从顶级容器组件的 componentWillUnmount 调用 killFirebaseListener 操作...并在必要时使用用户可观察对象 . 我的理解是,当我的用户在成功登录或注销后可观察到更新时,我的所有听众都会更新并触发相应的重新渲染......我错了吗?

有没有人有使用mobx这种“用户监听器”的经验?有没有人可以传递任何指针或资源 .

1 回答

  • 2

    好 . 看起来我的想法很好用 . 我补充道

    class Store {
      @observable user = null
      constructor() {
        firebase.auth().onAuthStateChanged(user => {
          if (user) {
            this.user = user
          }
        })
      }
    }
    

    并且听众工作得很好/更新没有问题 .

相关问题