堆导航器在React Native中的抽屉导航器内部不起作用

时间:2019-01-30 13:37:47

标签: react-native

我正在制作一个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中,并且在HistoryDe​​tails中然后当我再次按抽屉中的HomeScreen时,它不会进入OrderHistory中。我尝试设置initialRoutename但它不起作用?但是如果我从MOrderScreen或ProfileScreen中单击,则其工作正常,并且OrderHistory首先打开。

1 个答案:

答案 0 :(得分:0)

抽屉只知道它必须导航到“ orderstack”屏幕,在这种情况下,它是一个堆栈导航器,但是当您在HistoryDe​​tails或TrackOrder中时,您仍在“ orderstack”屏幕中,抽屉不会处理深层导航。它仅在您提供的屏幕之间导航。您需要定义一个custom contentcomponent来以您的方式处理导航。在reaction anvigation 3.0的tabnavigator中已经存在返回初始屏幕的行为,因此您应该尝试一下它是否适合您的需求。

请检查here,了解如何实现自定义组件来重置堆栈导航器,或者建议仅使用Tabnavigator来重置屏幕(这是youtube app的工作方式)