'Error: Element type is invalid: expected a string (for built-in components) but got: undefined. The ERROR is located at NativeStackViewInner

I get this error when I use StackNavigation in a react-native component. This works just fine:

const AppStack = () => {
  return (
     <Tab.Navigator
       screenOptions={{activeTintColor: '#FF0000', inactiveTintColor: 'black'}}
       tabBar={props => <BottomTabBar {...props} />}
       initialRouteName={'Home'}>
       <Tab.Screen
         name="Home"
         component={HomeScreen}
         options={{headerShown: false}}
       />
       <Tab.Screen
         name="Add"
         component={AddScreen}
         options={{headerShown: false}}
       />
       <Tab.Screen
         name="Recipe"
         component={RecipeScreen}
         options={{headerShown: false}}
       />
       <Tab.Screen
         name="Workout"
         component={WorkoutScreen}
         options={{headerShown: false}}
       />
       <Tab.Screen
         name="Settings"
         component={SettingsScreen}
         options={{headerShown: false}}
       />
     </Tab.Navigator>
  );
};

export default AppStack;

but when I combine this tab navigator with some other components and make a stack navigator out of these:

const AppStack = () => {
  return (
    <Stack.Navigator initialRouteName="tabs">
      <Stack.Screen
        options={{headerShown: false}}
        name="tabs"
        component={TabNavigator}
      />
      <Stack.Screen
        name="RecipeDetails"
        component={RecipeDetails}
        options={({route}) => ({title: route.params.name})}
      />
    </Stack.Navigator>
 );
};

export default AppStack;

TabNavigator component :


const TabNavigator = () => (
  <Tab.Navigator
    screenOptions={{activeTintColor: '#FF0000', inactiveTintColor: 'black'}}
    tabBar={props => <BottomTabBar {...props} />}
    initialRouteName={'Home'}>
    <Tab.Screen
      name="Home"
      component={HomeScreen}
      options={{headerShown: false}}
    />
    <Tab.Screen
      name="Add"
      component={AddScreen}
      options={{headerShown: false}}
    />
    <Tab.Screen
      name="Recipe"
      component={RecipeScreen}
      options={{headerShown: false}}
    />
    <Tab.Screen
      name="Workout"
      component={WorkoutScreen}
      options={{headerShown: false}}
    />
    <Tab.Screen
      name="Settings"
      component={SettingsScreen}
      options={{headerShown: false}}
    />
  </Tab.Navigator>
);

I get the error: ERROR Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

here are my imports:

import React from 'react';
import {createNativeStackNavigator} from '@react-navigation/native-stack';
import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
import HomeScreen from '../Screens/HomeScreen';
import SettingsScreen from '../Screens/SettingsScreen';
import {StyleSheet} from 'react-native';
import Icon from 'react-native-vector-icons/FontAwesome5';
import {
  ApplicationProvider,
  Button,
  IconRegistry,
  Layout,
  Text,
  BottomNavigation,
  BottomNavigationTab,
} from '@ui-kitten/components';
import {EvaIconsPack} from '@ui-kitten/eva-icons';
import * as eva from '@eva-design/eva';
import AddScreen from '../Screens/AddScreen';
import RecipeScreen from '../Screens/RecipeScreen';
import WorkoutScreen from '../Screens/WorkoutScreen';
import RecipeDetails from '../components/RecipeDetails';


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source