I am trying to set up React Navigation to my React Native project, but when I do navigation.navigate('home', data ) in my "LoginEnterVerificationCode" Screen in React Native I get this error:
Do you have a screen named 'home'?
I double check my imports and I have a correct file name, Home.tsx, in my project. How can I fix the problem?
Also when I do <Stack.Screen name='home' component={Home} /> in the AuthStack.js file then it works fine. But why is it not working in TabRoutes file since home screen is a bottom navigation screen?
File AuthStack.js
import React from 'react';
import YourName from '../Screens/Auth/YourName';
import YourEmail from '../Screens/Auth/YourEmail';
import LoginEnterVerificationCode from '../Screens/Auth/LoginEnterVerificationCode';
export default function (Stack) {
return (
<>
<Stack.Screen name='enteryourname' component={YourName} />
<Stack.Screen name='enteryouremail' component={YourEmail} />
<Stack.Screen name='loginenterverificationcode' component={LoginEnterVerificationCode} />
</>
)
}
File MainStack.js
import React from 'react';
import TabRoutes from './TabRoutes';
export default function (Stack) {
return (
<>
<Stack.Screen name='tabroutes' component={TabRoutes} />
</>
)
}
File TapRoutes.js
import * as React from 'react';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import Home from '../Screens/Main/Home/Home';
import Profile from '../Screens/Main/Profiles/Profile';
const Tab = createBottomTabNavigator();
export default function TabRoutes() {
return (
<Tab.Navigator screenOptions={{headerShown:false}}>
<Tab.Screen
name='home'
component={Home}
options={{
tabBarIcon: ({ focused }) => {
return <></>
}
}}
/>
<Tab.Screen
name='profile'
component={Profile}
options={{
tabBarIcon: ({ focused }) => {
return <></>
}
}}
/>
</Tab.Navigator>
);
}
File Routes.js
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import AuthStack from './AuthStack';
import MainStack from './MainStack';
const Stack = createNativeStackNavigator();
function Routes() {
const userData = 'dd'
return (
<NavigationContainer>
<Stack.Navigator screenOptions={{headerShown:false}}>
{!!userData?.userData?._id?<>{MainStack(Stack)}</>:<>{AuthStack(Stack)}</>}
</Stack.Navigator>
</NavigationContainer>
);
}
export default Routes;
I also tried this:
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import AuthStack from './AuthStack';
import YourName from '../Screens/Auth/YourName';
import YourEmail from '../Screens/Auth/YourEmail';
import LoginEnterVerificationCode from '../Screens/Auth/LoginEnterVerificationCode';
import TabRoutes from './TabRoutes';
const Stack = createNativeStackNavigator();
function Routes() {
const userData = '';
return (
<NavigationContainer>
<Stack.Navigator screenOptions={{ headerShown: false }}>
{!!userData ? (
<>
<Stack.Screen name="tabroutes" component={TabRoutes} />
</>
) : (
<>
<Stack.Screen name="enteryourname" component={YourName} />
<Stack.Screen name="enteryouremail" component={YourEmail} />
<Stack.Screen
name="loginenterverificationcode"
component={LoginEnterVerificationCode}
/>
</>
)}
</Stack.Navigator>
</NavigationContainer>
);
}
export default Routes;