如何从其他Stack React Native将参数传递给Stack?

问题描述 投票:0回答:1

我的问题是,我有一个配置文件堆栈,其中包含您可以通过/用户的配置文件访问的所有屏幕。我将此堆栈放到DrawerStack以及HomeScreen堆栈中,因为这是在其中导航的两种可能方式。但是,当我用一些参数导航到那里时,它说路线的参数是不确定的。

个人资料堆栈

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

Home 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})} 

我可以传递参数并导航到配置文件,如果我不使用Stack,但是我必须将每个配置文件屏幕添加到其他所有Stack中,我认为这样做效率不高。我读过某个地方,类似的名字可能会引起这样的问题,但是我无法解决这个问题。

react-native react-navigation
1个回答
0
投票

所以最后我在文档中找到了答案。

我必须这样导航:

props.navigation.navigate('Profile',{屏幕:“个人资料”,参数:{current_user:true},});

而且我还在ProfileNavigator中将ProfileScreen名称更改为Profile。

© www.soinside.com 2019 - 2024. All rights reserved.