无法在 SwitchNavigator 中导航



我的项目中有Switch-Navigator,其中包含三个项目:

const App = createSwitchNavigator({
Splash: LoadingScreen,
Auth: AuthStack,
AppStack: Drawer

});
export default createAppContainer(App);

加载屏幕只是一个返回空白视图的屏幕,并包含登录检查以导航到身份验证或Appstack,现在检查后我可以成功导航到任一堆栈,但我无法从某些堆栈导航到其他堆栈,例如我从加载屏幕导航到身份验证屏幕n现在登录后我想从身份验证堆栈移动到AppStack,但它给了我错误。

const AuthScreens = ({ navigation }) => (
<Stack.Navigator>
<Stack.Screen
name="LoginScreen"
component={LoginScreen}
options={{
headerShown: false,
headerTransparent: true,
gestureEnabled: false,
}}
/>
<Stack.Screen
name="ResetPwd"
component={ResetPwd}
gestureEnable={true}
options={{
headerShown: false,
headerTransparent: true,
gestureEnabled: true,
}}
/>
</Stack.Navigator>
);
export default AuthScreens

My AppStack有抽屉,它进一步膨胀了AppStack

const DrawerNavigator = () => (
<Drawer.Navigator
...
<Drawer.Screen name="Home" component={AppStack} />
</Drawer.Navigator>
);
export default DrawerNavigator

应用堆栈:

const StackScreens = () => (
<Stack.Navigator>
<Stack.Screen
name="FeedbackAndWorkingScreen"
component={FeedbackAndWorkingScreen}
gestureEnable={true}
options={{
headerShown: false,
headerTransparent: true,
gestureEnabled: true,
}}
/>
...
</Stack.Navigator>
);
export default StackScreens

当我这样做时

props.navigation.navigate('AppStack')
props.navigation.navigate('Auth')

两者都工作得很好,但是当我尝试从堆栈的每个堆栈导航到其他堆栈时

props.navigation.navigate('AppStack')

它给了我这个错误:错误图像 知道我可能做错了什么吗?

我认为您收到错误,因为您混合了两个版本的反应导航 4 和 5。 导致错误是

const App = createSwitchNavigator({
Splash: LoadingScreen,
Auth: AuthStack,
AppStack: Drawer
});
export default createAppContainer(App);

你需要像这样改变:-

function App(){
return(
<Stack.Navigator>
{this.state.isLogin ? 
<Stack.Screen name='AppStack' component={DrawerNavigator} //after   login
: 
<Stack.Screen name='Auth' component={AuthScreen}  //before login
}
</Stack.Navigator>
)
}

成功登录时将 isLogin 的状态更改为 true,注销时更改为 false。

你必须与三元有关,因为反应导航 5 没有 switchNavigator。

希望对您有所帮助!!

如果有任何问题,请告诉我!!

相关内容

  • 没有找到相关文章

最新更新