Что произойдет, если опора initialRouteName не существует для компонента навигатора стека, предоставляемого библиотекой React Navigation в React Native - PullRequest
2 голосов
/ 01 августа 2020
const App = () => (
  <SafeAreaProvider>
    <NavigationContainer theme={MyTheme} linking={linking}>
      <Stack.Navigator
        initialRouteName="Root"
        screenOptions={{ gestureEnabled: false }}
      >
        <Stack.Screen
          name="NotRoot"
          component={NotRoot}
          options={verticalConfig}
        />
      </Stack.Navigator>
    </NavigationContainer>
  </SafeAreaProvider>
);

В этом фрагменте кода Root - это несуществующее имя Stack.Screen, которого нет ни в одном файле в исходном коде проекта. Итак, мне было интересно, является ли «Root» значением по умолчанию?

1 Ответ

1 голос
/ 01 августа 2020

Root не является значением по умолчанию. Когда вы указываете initialRouteName, которого не существует, он делает то же самое, что и когда вы не указываете опору: он переходит к первому экрану (маршруту).

Вы можете увидеть это в коде ( GitHub ), вот соответствующая часть:

const initialRouteName =
  options.initialRouteName !== undefined &&
  routeNames.includes(options.initialRouteName)
    ? options.initialRouteName // if initialRouteName is defined and exists
    : routeNames[0]; // otherwise, go to the first one
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...