Home > front end >  Why I can't navigate using bottom navigator tabs?
Why I can't navigate using bottom navigator tabs?

Time:09-22

I have a bottom navigator tab which is showing correctly but when I click on any of the tabs it does not do anything:

import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
const Stack = createStackNavigator();
const Tab = createBottomTabNavigator();


function HomeScreen() {       
   return (
      <Tab.Navigator>
         <Tab.Screen name="Home" component={Home} />
         <Tab.Screen name="Scan" component={Scan} initialParams={{ type: '' }} />
         <Tab.Screen name="StockStatus" component={StockStatus} />
      </Tab.Navigator>
   );
}


  function navigation() {
   return (
      <NavigationContainer>
         <Stack.Navigator>
            <Stack.Screen name="Login" component={Login}
               options={{
                  headerShown: false,
               }} />
            <Stack.Screen
               name="homeScreen"
               component={HomeScreen}
               options={{ headerShown: false }}
            />           
         </Stack.Navigator>
      </NavigationContainer>
   )}

It does not display any warning nor errors. So what could be the problem?!

CodePudding user response:

I can't find anything wrong at you code. I wanna provide a working example.

import { View, Text, Button } from 'react-native';
import { NavigationContainer, useNavigation } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';

const Stack = createStackNavigator();
const Tab = createBottomTabNavigator();

function Dummy({ title }) {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>{title}</Text>
    </View>
  );
}

function Login() {
  const navigation = useNavigation();

  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Login</Text>
      <Button
        title={'GOTO Tab'}
        onPress={() => navigation.navigate('homeScreen')}
      />
    </View>
  );
}

const Home = () => <Dummy title="Home" />;
const Scan = () => <Dummy title="Scan" />;
const StockStatus = () => <Dummy title="StockStatus" />;

function HomeScreen() {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Home" component={Home} />
      <Tab.Screen name="Scan" component={Scan} />
      <Tab.Screen name="StockStatus" component={StockStatus} />
    </Tab.Navigator>
  );
}

export default function navigation() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen
          name="Login"
          component={Login}
          options={{
            headerShown: false,
          }}
        />
        <Stack.Screen
          name="homeScreen"
          component={HomeScreen}
          options={{ headerShown: false }}
        />
      </Stack.Navigator>
    </NavigationContainer>
  );
}
  • Related