react-navigation - 当我们在 React-Native 的抽屉导航中单击标题中的图标时,如何在主屏幕顶部加载另一个屏幕
问题描述
我创建了一个带有主页和购物车菜单的抽屉导航
当我单击标题上的购物车符号时,我想在此主屏幕顶部打开单独的页面。我写了如下代码
const DrawerNavigationCon=createDrawerNavigator({
Home:HomeNavigation,
Cart:CartNavigation
},{
overlayColor:'gray',
initialRouteName:'Home'
})
我已经编写了从家导航到购物车的代码,如下所示
const CartNavigation = createStackNavigator({
Cart:CartPage,
},
{
defaultNavigationOptions:({navigation})=>{
return{
headerStyle:{
backgroundColor:'rgb(28, 34, 36)'
},
headerTitle:'Cart',
headerTintColor:'#fff',
headerTitleStyle:{
fontWeight:'bold',
textAlign:'center',
flex:1
},
headerLeft:(
<View>
<Icons name="md-menu" style={{fontSize:35,color:'white',paddingLeft:10}} onPress={()=>navigation.openDrawer()} />
</View>
),
headerRight:(
<View>
<Icons name="md-cart" style={{fontSize:30,color:'white',paddingRight:10}} onPress={() => navigation.navigate('Cart')} />
</View>
)
}
}
})
你可以onPress={() => navigation.navigate('Cart')}
在<Icons>
标签中看到
当我点击购物车时,它的打开方式如下
但是当我点击购物车时,我想在主页顶部加载另一个页面,如下所示
如何做到这一点,请帮助
提前致谢
解决方案
const DrawerNavigationCon= createStackNavigator({
Home:createDrawerNavigator({
Home:HomeNavigation,
},{
overlayColor:'gray',
initialRouteName:'Home'
}),
Cart:{
screen : CartPage
}
})
如图所示使用您的堆栈配置并根据要求配置您的堆栈您可以从上面的代码中得到一个想法。
基本上想法是使用 stackNavigator 作为父堆栈,并将抽屉导航器作为该 stackNavigator 的子级,并将另一条路线与该抽屉导航器平行,以便您现在可以在抽屉导航器顶部打开另一个屏幕。
推荐阅读
- android - xmlpullparser(错误的文件描述符)
- qt - 在 Text 元素中使用变量作为文本会立即激活 onTextChanged
- python - if语句中使用'and'的多个条件
- html - 如何修复 CSS 导航闪烁问题
- amazon-web-services - aws apigateway 到 beanstalk 的内部网络负载平衡不起作用
- xcode - 具有可变行高和自定义单元格的 macOS 可可表视图
- php - Eclipse Php:变量未定义,即使它是在require_once php文件中定义的
- php - firstOrCreate() 不插入和更新
- macos - 您没有 /Library/Ruby/Gems/2.3.0 目录的写入权限。(mac用户)
- angular - 如何为角度 2 中的展开和折叠切换应用颜色