如何在几个 AppContainer 之间导航

How to navigate between a few AppContainers

如何在 AppContainer 之间导航?

我在 App.js

中检测到正确的堆栈
const stack = User.isAuthorized() ? authStack : unauthStack;

用户输入登录名和密码后,他需要将堆栈从unauthStack.SignIn切换到authStack.List

const unauthStack = createAppContainer(createStackNavigator({
    SignIn: { screen: SignIn },
    ForgotPassword: { screen: ForgotPassword },
}));

const authStack = createAppContainer(createBottomTabNavigator({
        List: { screen: GeneralStack },
        Add: { screen: NewEventStack },
}));

我已经尝试 Google 它但找不到任何工作示例。并看到一些信息,完全重新加载应用程序可能是内存泄漏或类似原因的原因...

那么正确的做法是什么?

你不应该接近多个容器,而是制作 2 个堆栈并添加一个 switchNavigator,如果它已登录,则相应地显示。请参见下面的示例:

const navigation = createAppContainer(
  createSwitchNavigator(
    {
      App: HomeStack, // these are after login pages
      Auth: AuthStack,// these are before login pages
    },
    {
      initialRouteName: isToken?'App':'Auth', //checking if token exists
    },
  ),
);

请检查代码,如有疑问请追问。

希望对您有所帮助