Я всегда помещал свой auth.onAuthStateChange().then(user => ...
в componentDidMount()
компонента React верхнего уровня.
Затем я бы удалил слушателя внутри componentWillUnmount()
Мой вопрос в том, как я могу это сделать? Моя идея примерно такая:
class Store {
@observable user = null
@action killFirebaseListener = this.removeListener()
constructor() {
this.removeListener = firebase.auth().onAuthStateChange(user => {
if (user) this.user = user
})
}
}
Затем я бы вызвал действие killFirebaseListener
из componentWillUnmount
компонента-контейнера верхнего уровня ... и просто использовал наблюдаемое пользователем, где это необходимо. Насколько я понимаю, когда мои наблюдаемые пользователем обновления после успешного входа в систему или выхода из системы, все мои слушатели будут обновляться и соответственно запускать повторный рендеринг ... я ошибаюсь в этом?
Есть ли у кого-нибудь опыт работы с такого рода "пользовательским слушателем" с mobx? Есть ли у кого-нибудь указатели или, может быть, ресурсы, которые они могут передать.