React native 两条路由在“时”实例化;“注册”;触发
我有一个带有注册和登录流的应用程序。当与Redux一起使用时,嵌套堆栈导航器有点问题 反应导航结构React native 两条路由在“时”实例化;“注册”;触发,react-native,redux,react-redux,react-navigation,stack-navigator,React Native,Redux,React Redux,React Navigation,Stack Navigator,我有一个带有注册和登录流的应用程序。当与Redux一起使用时,嵌套堆栈导航器有点问题 反应导航结构 RootNavigator(堆栈导航器) 注册(堆栈导航器) 登录(堆栈导航器) 应用程序设置 反应:16.0.0-alpha.6 反应本机:0.44.2 反应导航:^1.0.0-beta.11 反应重复次数:^5.0.6 我的问题是,当从“登陆”触发“注册”(或“登录”)时,将为嵌套(内部)堆栈导航器实例化两个初始屏幕。请看下面的屏幕抓图 这是着陆状态(正确) 但当按下“寄存器”时
- RootNavigator(堆栈导航器)
- 注册(堆栈导航器)
- 登录(堆栈导航器)
- 反应:16.0.0-alpha.6
- 反应本机:0.44.2
- 反应导航:^1.0.0-beta.11
- 反应重复次数:^5.0.6
请参考下面的链接,由我的朋友完美解答和解释->为了子孙后代回答我自己的问题 当按下Register时,我将导航到“Step1”而不是“PersonalRego”PersonalRego'已将'Step1'作为初始路由,因此如果导航到'Step1',它将推送另一个实例
因此,按下注册按钮调用“PersonalRego”路线可以解决这个问题。您能否提供导航器结构的代码以及如何使用导航器进行导航?@AlexanderVitanov:我已经用StackNav代码结构更新了这个问题。但问题与结构无关。我没有呼叫正确的路线名称。请参考我自己对这个问题的回答以了解更多信息。谢谢,链接上写着“访问被拒绝”。但我设法解决了我的问题。我会在回答中解释。
// LandingNav.js
const routes = {
Landing: { screen: Landing },
PersonalRego: { screen: PersonalRego },
Auth: { screen: Auth },
};
const config = {
headerMode: 'none',
initialRoute: 'Landing,
};
const Root = StackNavigator(routes, config);
// PersonalRegoNav.js
const routes = {
Step1: { screen: Step1 },
Step2: { screen: Step2 },
Step3: { screen: Step3 },
};
const config = {
headerMode: 'none,
initialRoute: 'Step1',
};
const Root = StackNavigator(routes, config);
// AuthNav.js
const routes = {
Login: { screen: LoginContainer },
ForgotUsername: { screen: ForgotUsername },
ForgotPassword: { screen: ForgotPassword },
};
const config = {
headerMode: 'none',
initialRoute: 'Login',
};
const Root = StackNavigator(routes, config);