child_added в stackNavigator не запускает componentWillUnmount - PullRequest
1 голос
/ 23 марта 2019

StackNavigator не вызывает событие componentWillUnmount, поэтому два слушателя остаются открытыми.

Есть ли способ перехватить событие "OnTabChange", чтобы остановить слушателя?

Если пользователь быстро переключается с одной вкладки на другую, будет ли это лучшим вариантом?

Я также думал о создании слушателя в файле App.js, чтобы он генерировал сообщение (со снимком) и захватывал это событие на экране, который слушатель слушает.

Я думал, что сделалслушатель в App.js, как

firebase.authFirebaseListener = auth.onAuthStateChanged((user) => {
  if (user) {
    db.ref('users')
    .child(auth.currentUser.uid)
    .child('favorites')
    .on('child_added', snapshotFavorites => {
       ## Send a signal with snapshotFavorites
       ## to refresh data if current screen need it.
    })
    ....
  } 
}

componentWillUnmount() {
    db.ref('users').child(auth.currentUser.uid).child('favorites').off()
    db.ref('users').child(auth.currentUser.uid).off()
    db.ref('users').off()
  }

1 Ответ

0 голосов
/ 23 марта 2019

Я не уверен, что это то же самое, но я использовал react-navigation-is-focused-hoc и добавил прослушиватель на страницу, которую я хотел вызвать ComponentWillMount и обнаружить изменения.Посмотрите, я использовал именно то, что написано в github.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...