React native 如何在应用程序容器中正确堆叠嵌套的导航器?
我目前有一个AppContainer,它由一个底部选项卡导航器和一个用于配置文件设置的导航集组成。我试图了解如何正确安排一切,特别是如何在一个选项卡配置文件中嵌套导航,这样我就可以通过两个按钮访问另外两个页面QrCode和EditAccount。如何实现以下输出?我相信我必须以某种方式嵌套配置文件导航 我的标签在下面 家 队列 轮廓 :在这里,我还有两个页面可以访问QRCode和EditAccounts App.js 应用答案后 该解决方案可根据需要提供以下代码:React native 如何在应用程序容器中正确堆叠嵌套的导航器?,react-native,react-navigation,expo,react-navigation-stack,React Native,React Navigation,Expo,React Navigation Stack,我目前有一个AppContainer,它由一个底部选项卡导航器和一个用于配置文件设置的导航集组成。我试图了解如何正确安排一切,特别是如何在一个选项卡配置文件中嵌套导航,这样我就可以通过两个按钮访问另外两个页面QrCode和EditAccount。如何实现以下输出?我相信我必须以某种方式嵌套配置文件导航 我的标签在下面 家 队列 轮廓 :在这里,我还有两个页面可以访问QRCode和EditAccounts App.js 应用答案后 该解决方案可根据需要提供以下代码: const navigat
const navigationOptions = ({ navigation }) => {
return {
headerTitle: 'hello',
headerStyle: {
height: '45%',
backgroundColor: 'black'
},
headerTintColor: 'white',
headerLeft: (
<TouchableWithoutFeedback
style={{ /* Put your style here */}}
onPress={() => navigation.goBack()} >
<Ionicons name="ios-arrow-dropleft" size={32} color="white" />
</TouchableWithoutFeedback>
)
}
}
const ProfileNavigator = createStackNavigator({
Profile: { screen: Profile},
QR: { screen: GenerateQR, navigationOptions },
EditAccount: { screen: EditAccount, navigationOptions }
});
//ADDED
ProfileNavigator.navigationOptions = () => {
const navigationOptions = {
header: null,
headerMode: 'none',
};
return navigationOptions;
};
const AppNavigator = createSwitchNavigator({
tabs: bottomTabNavigator,
profile: ProfileNavigator
})
const AppContainer = createAppContainer(AppNavigator);
唯一的问题是我不确定如何将标题选项移植到bottomTabNavigator中的选项卡。我为配置文件页面准备了一个自定义组件,使其看起来像此黑条,带有配置文件的按钮图标:
然后,我可以通过按用户图标导航到EditAccounts。但是,当我从EditAccounts导航回profile时,页面显示为navigationOptions标题,如下所示:
我如何正确地应用它,这样我就可以简单地依靠navigationOptions标题并将自定义名称推到其上。在这种情况下,请删除我的自定义组件?有两种情况
如果您想在访问QR或EditAccount时保持标签
如果你不想做记录的话
更新:
向ProfileNavigator添加导航选项以删除标题
ProfileNavigator.navigationOptions = () => {
const navigationOptions = {
header: null,
headerMode: 'none',
};
return navigationOptions;
};
如果你能提供一些帮助,我添加了一个带有后续内容的编辑。我在选项卡可见的情况下应用了您的第一个解决方案。感谢您的帮助。我更新了答案以删除标题。试着看看它对你是否有效我不确定我是否能理解。如何在我的代码中应用它?只需在const ProfileNavigator=createStackNavigator{}之后添加。更新答案上面没有骰子,我也把它添加到了问题中,所以你可以看到,但它仍然会向下推黑条。我甚至删除了黑条,以保留所有的常规项目,但没有运气。我得玩它
const BottomTabNavigator = createBottomTabNavigator({
...
Profile: {
screen: ProfileNavigator,
}
})
const ProfileNavigator = createStackNavigator({
Profile: { screen: Profile},
QR: { screen: GenerateQR, navigationOptions },
EditAccount: { screen: EditAccount, navigationOptions }
});
ProfileNavigator.navigationOptions = () => {
const navigationOptions = {
header: null,
headerMode: 'none',
};
return navigationOptions;
};
const AppContainer = createAppContainer(BottomTabNavigator);
const BottomTabNavigator = createBottomTabNavigator({
...
Profile: {
screen: Profile,
}
})
const AppNavigator = createStackNavigator({
Tabs: BottomTabNavigator,
QR: { screen: GenerateQR, navigationOptions },
EditAccount: { screen: EditAccount, navigationOptions }
})
const AppContainer = createAppContainer(AppNavigator);
ProfileNavigator.navigationOptions = () => {
const navigationOptions = {
header: null,
headerMode: 'none',
};
return navigationOptions;
};