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()
}