Как добавить createBottomTabNavigator на тот же экран с помощью createStackNavigator - PullRequest
2 голосов
/ 14 марта 2019

На домашнем экране (я использовал App.js в качестве дома), у меня есть createStackNavigator с createAppContainer для отображения всех экранов с помощью React-Navigation. Это сработало, и я могу явно перейти на любой из этих экранов с любого экрана. Теперь я хочу добавить панель навигации нижней вкладки на домашний экран с помощью «createBottomTabNavigator».

Вот упрощенная версия моих кодов:

import { createStackNavigator, createAppContainer, createBottomTabNavigator  } from 'react-navigation';
import Screen1 from './Screens/Screen1';
import Screen2 from './Screens/Screen2';
import Screen3 from './Screens/Screen3';

class HomeScreen extends React.Component {
   render() {
      return (
         <View><Text>Welcome</Text></View>
      );
   }
 }

 const AppNavigator = createStackNavigator({
   Home: { screen: HomeScreen },
   Screen1: { screen: Screen1 },
   Screen2: { screen: Screen2 },
   Screen3: { screen: Screen3 },
 });

 export default createAppContainer(AppNavigator);

Я хочу добавить панель навигации внизу, как это:

const TabNavigator = createBottomTabNavigator({
   Home: { screen: HomeScreen },
   Screen3: { screen: Screen3 },
});

export default createAppContainer(TabNavigator);

Это не разрешит два «экспорта по умолчанию» на одной странице. Как добавить «createBottomTabNavigator», оставив «createStackNavigator» для сопоставления всех моих экранов?

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Примерно так.

import { createStackNavigator, createAppContainer, createBottomTabNavigator } from 'react-navigation';
import Screen1 from './Screens/Screen1';
import Screen2 from './Screens/Screen2';
import Screen3 from './Screens/Screen3';
import Screen4 from './Screens/Screen4';

const Home = createStackNavigator({
  Screen1, Screen2
});

const List = createStackNavigator({
  Screen3, Screen4
});

const TabNav = createBottomTabNavigator({
  Home, List
});

export default createAppContainer(TabNav);

Здесь ваш дом может быть Screen1 и Screen2 Может быть элементом экрана Screen1 и таким же для Screen3 and Screen4

0 голосов
/ 14 марта 2019

Вы можете использовать код следующим образом:

import { createStackNavigator, createAppContainer, createBottomTabNavigator } from 'react-navigation';
import Screen1 from './Screens/Screen1';
import Screen2 from './Screens/Screen2';
import Screen3 from './Screens/Screen3';

class HomeScreen extends React.Component {
  render() {
    return (
       <View><Text>Welcome</Text></View>
    );
 } 
}

const AppNavigator = createStackNavigator({
  Home: { screen: TabNavigator },
  Screen1: { screen: Screen1 },
  Screen2: { screen: Screen2 },
  Screen3: { screen: Screen3 },
});

const TabNavigator = createBottomTabNavigator({
  Home: { screen: HomeScreen },
  Screen3: { screen: Screen3 },
});

export default createAppContainer(AppNavigator);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...