Я добавил навигатор в нижней вкладке, например:
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import DetailsScreen from '../Screens/DetailsScreen';
import HomeScreen from '../Screens/HomeScreen';
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import TestScreen from '../Screens/TestScreen';
import {StyleSheet} from 'react-native';
const Tab = createBottomTabNavigator();
export default class Navigation {
render() {
return (
<NavigationContainer style={styles.navigationContainer}>
<Tab.Navigator style={styles.tabNavigator}>
<Tab.Screen style={styles.tabScreen} name="Detail" component={DetailsScreen} />
<Tab.Screen style={styles.tabScreen} name="Home" component={HomeScreen} />
<Tab.Screen style={styles.tabScreen} name="Test" component={TestScreen} hide={true} />
</Tab.Navigator>
</NavigationContainer>
);
}
}
const styles = StyleSheet.create({
});
Это отлично работает! После этого я добавил на главный экран стековый навигатор (для навигации по экранам, которых нет в навигаторе вкладок).
Но он не работает нормально, поскольку разделяет мой экран. Мой стековый навигатор выглядит так:
import { createStackNavigator } from '@react-navigation/stack';
import HomeScreen from '../Screens/HomeScreen';
import DetailsScreen from '../Screens/DetailsScreen';
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
const Stack = createStackNavigator();
export default function StackNavigation() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
Я добавил эти два файла в свой файл приложения, как с помощью тегов, и после импорта.
import ....
class App extends React.Component{
render(){
return (
<View style={styles.container}>
<Navigation />
<StackNavigation />
</View>
);
}
};