React Mobx Firebase.onAuthStateChanged listener

Я всегда ставлю свои 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? У кого-нибудь есть указатели или ресурсы, которые они могут передать.

1 ответ

ХОРОШО. Похоже, моя идея работает просто отлично. я добавил

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

и слушатель работает просто отлично / обновления без проблем.

Для тех, кто борется с интеграцией Reaction-MOBX-FireBase, я написал инструментарий с открытым исходным кодом, который сделает все за вас. интеграция с firestore, авторизация, дополнительный встроенный интерфейс администратора, простой рендеринг и многое другое. надеюсь, кто-то найдет это полезным. это называется orkan, проверьте это.

Другие вопросы по тегам