在我的应用程序中,我使用React-native-navigation,对于其余的应用程序,我从startSingleScreenApp(登录)转到startTabBasedApp。当我注销时。我回到一个屏幕应用程序。我已经厌倦了两种方法来执行此操作。
1)将root重置为登录屏幕并隐藏选项卡栏。 2)再次调用startSingleScreenApp。
然后,当我重新登录该应用程序时,我再次启动一个标签导航应用程序。
这两种方法在第二次登录时均导致以下错误。
Error while starting app: Error: You attempted to set the key "tabBarBackgroundColor" with the value "4294967295" on an object that is meant to be immutable and has been frozen.
从错误中我了解到我无法启动两次标签导航应用程序,或者我做错了。
所以我的问题是,我可以两次启动标签导航吗?还有如何从内存中真正擦除以前的标签导航应用程序堆栈。
感谢您提供的指导。
注意:两种方法都可以在Android中使用。仅在IOS上出现错误。
使用Redux创建了一个名为firstTimeLogin的变量,并将其默认值设置为true。注销后,将该值设置为false。
在启动导航选项卡的函数内部。我只是使用了if / else来检查变量是true还是false。如果用户以前已经登录。我检查操作系统if(Platform.OS === 'ios')
的iOS是否调用了startTabNavigation,但没有在函数中包含tabsStyle: IOSTabStyles
或appStyle: AndroidTabStyles
。如果是Android,我会像平常一样调用该函数。
尽管我现在可以使用它,但是我敢肯定有更好的方法可以做到这一点。如果您知道一种方法,请分享,谢谢。