【发布时间】:2019-12-19 12:27:10
【问题描述】:
在屏幕之间导航时不会重置屏幕状态。
屏幕 A:地图(主屏幕)屏幕 B:地图过滤器
当用户登录时,他会看到主屏幕 - 屏幕 A - 与 firebase 实时数据库中的用户一起在 componentdidmount setState 上。为了过滤地图,他进入屏幕 B 设置过滤器,过滤器被保存到 firebase。保存过滤器后,他返回屏幕 A,但初始状态的用户是相同的,要查看过滤列表,用户需要重新启动应用程序。
当用户发送消息时,与天才聊天库和 Firebase 有同样的问题,聊天屏幕会在其他用户的应用程序上随机打开并重新打开,即使用户没有聊天。
尝试在这两种情况下将 isMonted = true 放在 componentdidmount 上,并在离开屏幕时将其设置为 false,但没有成功。
尝试将屏幕将所有初始状态设置为 false 时设置状态,也没有运气。
所有屏幕都在同一个导航堆栈上。
使用:-expo -firebase -react native navigation -react native maps -giftedchat
当用户离开屏幕并防止屏幕随机打开时,有什么方法可以卸载状态?
已尝试:Which lifecycle event is called when a screen appears? 但数据保持不变
【问题讨论】:
-
当你返回时试试 this.props.navigation.push 而不是 this.props.navigation.navigate
-
push 方法用于更新状态,但现在屏幕 A 上的标记导致一些闪烁
-
嗯,不知道,因为没有代码,但我想你得到了你想要的东西
标签: android firebase react-native react-navigation react-native-gifted-chat