Как передать параметры в стек из другого стекового React Native? - PullRequest
0 голосов
/ 16 марта 2020

Моя проблема в том, что у меня есть стек профилей, который содержит все экраны, которые вы можете открыть из профиля вашего / пользователя. Я поместил этот стек в свой стек DrawerStack, а также в мой стек HomeScreen, потому что это два возможных способа навигации по нему. Но когда я перемещаюсь туда с некоторыми параметрами, он говорит, что параметры маршрута не определены.

Стек профиля

function ProfileNavigator() {
  return (
    <Stack.Navigator>
      <Stack.Screen name="ProfileScreen" component={Profile} />
      ...Other Screens
    </Stack.Navigator>
  );
}

Домашний навигатор

function HomeNavigator() {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Home" options={{headerShown: false}} component={Home} />
      <Stack.Screen name="Profile" options={{headerShown: false}} component={ProfileNavigator}/>
      ... Other Screens
    </Stack.Navigator>
  );
} 

Навигатор ящика

<NavigationContainer>
      <Drawer.Navigator
        drawerContent={props => <CustomDrawerNavigator {...props} />}
        initialRouteName="Home">
        <Drawer.Screen name="Home" component={BottomNavigator} />
        <Drawer.Screen
          name="Profile"
          options={{headerShown: false}}
          component={ProfileNavigator}
        />
      </Drawer.Navigator>
    </NavigationContainer>

Перейдите в профиль

onPress={() => props.navigation.navigate('Profile', {current_user: true})} 

Я могу передать параметры и перейти к Профиль Если я не использую стек, но мне нужно добавить каждый экран профиля в каждый другой стек, и я не думаю, что он эффективен. Я где-то читал, что подобные имена могут вызвать такую ​​проблему, но я просто не мог обернуться вокруг этой проблемы.

1 Ответ

0 голосов
/ 16 марта 2020

Итак, наконец, я нашел ответ в документации.

Мне пришлось перемещаться так:

props.navigation.navigate ('Profile', {screen: 'Profile', params : {current_user: true},});

И я также изменил имя ProfileScreen на Profile в ProfileNavigator.

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