Почему у нас есть несколько стекаНавигаторов?

Например, эта форма кода react-navigation документация для аутентификации:

import { createSwitchNavigator, createStackNavigator, createAppContainer } from 'react-navigation';

// Implementation of HomeScreen, OtherScreen, SignInScreen, AuthLoadingScreen
// goes here.

const AppStack = createStackNavigator({ Home: HomeScreen, Other: OtherScreen });
const AuthStack = createStackNavigator({ SignIn: SignInScreen });

export default createAppContainer(createSwitchNavigator(
  {
    AuthLoading: AuthLoadingScreen,
    App: AppStack,
    Auth: AuthStack,
  },
  {
    initialRouteName: 'AuthLoading',
  }
));

Почему у нас два разных стековых навигатора? Почему мы просто не сворачиваем все наши экраны в один навигатор? Какой должна быть логика для упаковки разных экранов в одни и те же навигаторы?

1 ответ

Решение

Если вы рассматриваете только навигацию, то нет реальной причины иметь один стековый навигатор в другом.

Однако существуют визуальные причины, которые могут потребовать использования разных навигаторов - разные переходы, макет заголовка и другие параметры стиля, все из которых можно найти здесь.

Тем не менее, не обязательно использовать несколько навигаторов, так как большинство из этих опций могут быть установлены для каждого экрана отдельно, но это может быть полезно при попытке минимизировать количество стандартного кода.

Другие вопросы по тегам