我总是将 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 回答
好 . 看起来我的想法很好用 . 我补充道
并且听众工作得很好/更新没有问题 .