Решено - headerShown, headerTitle и другие опции не работают на экранах - PullRequest
0 голосов
/ 06 апреля 2020

Я новичок в React Native и пытаюсь создать некоторые вещи только для изучения и тестирования ...

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

Для этого я пытаюсь использовать React-Navigation с параметрами на Stack.Screen. Но не работает ...

Вот мой текущий код:

[...]
const Stack = createStackNavigator();
[...]
<NavigationContainer>
  <Stack.Navigator headerMode="screen">
    <Stack.Screen headerTitle="Test" headerShown={false} screenOptions={{headerTitle: 'Test', headerShown: false}} name="Login" component={Login} />
  </Stack.Navigator>
</NavigationContainer>
[...]

Я проверяю, работает ли headerTitle и headerShown как свойство или как опция screenOptions ' ... но ничего не работает.

Теперь мой экран имеет заголовок "Логин" в заголовке (игнорируя свойство и параметр headerTitle) и показывает заголовок (игнорируя свойство и параметр headerShown ).

Может кто-нибудь сказать мне, что я делаю не так?

1 Ответ

0 голосов
/ 06 апреля 2020

screenOptions - это реквизит из Stack.Navigator, а не из Stack.Screen.

headerTitle и headerShown - оба варианта, а не реквизиты, поэтому они должны быть внутри параметров.

Так что либо измените 'screenOptions' на просто 'параметры':

<Stack.Screen options={{headerTitle: 'Test', headerShown: true}} name="Login" component={Login} />

Или переместите это в Stack.Navigator (будьте осторожны, это будет применено на все экраны внутри вашего навигатора):

<Stack.Navigator headerMode="screen" screenOptions={{headerTitle: 'Test', headerShown: true}}>
...