【发布时间】:2019-03-24 01:45:23
【问题描述】:
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()
}
【问题讨论】:
标签: react-native firebase-realtime-database