我正在制作一个React Native android应用,其中我既有堆栈导航器又有抽屉导航器。
const orderstack = createStackNavigator({
OrderHistory : {screen : OrderHistory},
HistoryDetails: {screen : HistoryDetails},
TrackOrder: {screen : TrackOrder},
},{
headerMode: 'none',
navigationOptions:({navigation}) => ({
header: null,
}),
})
抽屉是
const drawerNavigator = createDrawerNavigator({
HomeScreen: {
screen: orderstack,
},
ProfileScreen:{
screen: profile,
},
MOrderScreen: {
screen: customstack,
},{}
}
现在,当我进入抽屉中的HomeScreen时,它应该打开作为堆栈导航器的orderstack。这工作正常,直到我不在抽屉中的HomeScreen中,我的意思是,假设我在HomeScreen中,并且在HistoryDetails中然后当我再次按抽屉中的HomeScreen时,它不会进入OrderHistory中。我尝试设置initialRoutename但它不起作用?但是如果我从MOrderScreen或ProfileScreen中单击,则其工作正常,并且OrderHistory首先打开。
答案 0 :(得分:0)
抽屉只知道它必须导航到“ orderstack”屏幕,在这种情况下,它是一个堆栈导航器,但是当您在HistoryDetails或TrackOrder中时,您仍在“ orderstack”屏幕中,抽屉不会处理深层导航。它仅在您提供的屏幕之间导航。您需要定义一个custom contentcomponent来以您的方式处理导航。在reaction anvigation 3.0的tabnavigator中已经存在返回初始屏幕的行为,因此您应该尝试一下它是否适合您的需求。
请检查here,了解如何实现自定义组件来重置堆栈导航器,或者建议仅使用Tabnavigator来重置屏幕(这是youtube app的工作方式)