0

如何在 AppContainers 之间导航?

我在 App.js 中检测到正确的堆栈

const stack = User.isAuthorized() ? authStack : unauthStack;

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

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

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

我试过用谷歌搜索,但找不到任何有效的例子。并看到一些完全重新加载应用程序的信息可能是内存泄漏或类似的原因......

那么正确的方法是什么?

4

1 回答 1

0

您不应该接近多个容器,而是制作 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
    },
  ),
);

请检查代码,如果有任何疑问,请询问。

希望能帮助到你

于 2019-12-26T09:47:56.400 回答