没有为密钥授权定义路由
There is no route defined for key auths
我正在开发一个使用 react-native-router-flux
进行导航但出现此错误的应用程序
这是我的路由器
<Router navTransparent>
<Lightbox>
<Scene key="root" tintColor="#fff" style={{position: 'absolute'}} hideNavBar>
<Scene key="redirect" component={EnsureAuthentication}/>
<Scene key="auth" navBar={CustomNavBar}>
<Scene key="loginSignUp" component={Login} hideNavBar/>
<Scene key="login" component={LoginForm} title={I18n.t('loginTitle')} />
<Scene key="signUp" component={SignUpForm} title={I18n.t('signUpTitle')}/>
<Scene key="googleLogin" component={GoogleLogin}/>
</Scene>
<Drawer hideNavBar key="app" contentComponent={DrawerContent} drawerWidth={300} drawerOpenRoute="DrawerOpen" drawerCloseRoute="DrawerClose" drawerToggleRoute="DrawerToggle">
<Scene key="main" navBar={CustomNavBar}>
<Scene key="MapSearch" component={MapSearch}/>
<Scene key="ScanQr" hideNavBar component={ScanQr} />
<Scene key="searchList" hideNavBar component={SearchList}/>
<Scene key="editUserProfile" component={EditUserProfile} title={I18n.t('update')} />
<Scene key="stallDetails" hideNavBar component={StallDetails}/>
<Scene key="customise" hideNavBar component={Customise}/>
<Scene key="cart" hideNavBar component={Cart}/>
<Scene key="favourites" hideNavBar component={Favourites}/>
</Scene>
</Drawer>
</Scene>
<Scene key="overlay"/>
<Scene key="orderOverlay" hideNavBar component={OrderOverlay}/>
<Scene key="confirmOverlay" hideNavBar component={ConfirmOverlay}/>
<Scene key="forgotPasswordOverlay" hideNavBar component={ForgotPasswordOverlay}/>
<Scene key="forgotPwdSuccessOverlay" hideNavBar component={ForgotPwdSuccessOverlay}/>
</Lightbox>
</Router>
我打电话给Actions.reset('auths');
如果我调用 Actions.auths()
而不是 Actions.reset('auths');
并在我调用此方法的同一个文件中进行一些更改,应用程序重新加载一切正常,则会出现另一种奇怪的行为。
错误是由打字错误引起的。您的 Action
的 key
值未完全按照您的 Scene
中声明的那样调用。调用 Action.auth()
应该会按预期工作并解决错误。
我看到您正在尝试重置 Scene
。您也可以通过在 Router
中将 reset
声明为道具来做到这一点。这样,导航到Scene
应该每次触发reset
。
<Scene key="auth" navBar={CustomNavBar} type={ActionConst.RESET}>
如果您尝试为身份验证流程设置堆栈场景,您可以尝试设置堆栈以拥有 initial
道具。我在这里添加了一个代码片段用于测试:
<Stack key="auth" navBar={CustomNavBar} initial>
<Scene key="loginSignUp" component={Login} hideNavBar/>
<Scene key="login" component={LoginForm} title={I18n.t('loginTitle')} />
<Scene key="signUp" component={SignUpForm} title={I18n.t('signUpTitle')}/>
<Scene key="googleLogin" component={GoogleLogin}/>
</Stack>
我正在开发一个使用 react-native-router-flux
进行导航但出现此错误的应用程序
这是我的路由器
<Router navTransparent>
<Lightbox>
<Scene key="root" tintColor="#fff" style={{position: 'absolute'}} hideNavBar>
<Scene key="redirect" component={EnsureAuthentication}/>
<Scene key="auth" navBar={CustomNavBar}>
<Scene key="loginSignUp" component={Login} hideNavBar/>
<Scene key="login" component={LoginForm} title={I18n.t('loginTitle')} />
<Scene key="signUp" component={SignUpForm} title={I18n.t('signUpTitle')}/>
<Scene key="googleLogin" component={GoogleLogin}/>
</Scene>
<Drawer hideNavBar key="app" contentComponent={DrawerContent} drawerWidth={300} drawerOpenRoute="DrawerOpen" drawerCloseRoute="DrawerClose" drawerToggleRoute="DrawerToggle">
<Scene key="main" navBar={CustomNavBar}>
<Scene key="MapSearch" component={MapSearch}/>
<Scene key="ScanQr" hideNavBar component={ScanQr} />
<Scene key="searchList" hideNavBar component={SearchList}/>
<Scene key="editUserProfile" component={EditUserProfile} title={I18n.t('update')} />
<Scene key="stallDetails" hideNavBar component={StallDetails}/>
<Scene key="customise" hideNavBar component={Customise}/>
<Scene key="cart" hideNavBar component={Cart}/>
<Scene key="favourites" hideNavBar component={Favourites}/>
</Scene>
</Drawer>
</Scene>
<Scene key="overlay"/>
<Scene key="orderOverlay" hideNavBar component={OrderOverlay}/>
<Scene key="confirmOverlay" hideNavBar component={ConfirmOverlay}/>
<Scene key="forgotPasswordOverlay" hideNavBar component={ForgotPasswordOverlay}/>
<Scene key="forgotPwdSuccessOverlay" hideNavBar component={ForgotPwdSuccessOverlay}/>
</Lightbox>
</Router>
我打电话给Actions.reset('auths');
如果我调用 Actions.auths()
而不是 Actions.reset('auths');
并在我调用此方法的同一个文件中进行一些更改,应用程序重新加载一切正常,则会出现另一种奇怪的行为。
错误是由打字错误引起的。您的 Action
的 key
值未完全按照您的 Scene
中声明的那样调用。调用 Action.auth()
应该会按预期工作并解决错误。
我看到您正在尝试重置 Scene
。您也可以通过在 Router
中将 reset
声明为道具来做到这一点。这样,导航到Scene
应该每次触发reset
。
<Scene key="auth" navBar={CustomNavBar} type={ActionConst.RESET}>
如果您尝试为身份验证流程设置堆栈场景,您可以尝试设置堆栈以拥有 initial
道具。我在这里添加了一个代码片段用于测试:
<Stack key="auth" navBar={CustomNavBar} initial>
<Scene key="loginSignUp" component={Login} hideNavBar/>
<Scene key="login" component={LoginForm} title={I18n.t('loginTitle')} />
<Scene key="signUp" component={SignUpForm} title={I18n.t('signUpTitle')}/>
<Scene key="googleLogin" component={GoogleLogin}/>
</Stack>