反应导航导航到DrawerNavigator中的第一项,而不是将其打开

时间:2018-08-16 18:02:30

标签: react-native react-navigation

我对react-native还是陌生的,并且对用react-navigation实现开关堆栈抽屉导航嵌套有一些问题。 我的嵌套导航看起来像这样:

export default  SwitchNav =  createSwitchNavigator({
AuthLoading : AuthLoadingScreen  , 
LoginedStack : LoginedNavigator ,
AppStack : AppNavigator  
 },
 {
  initialRouteName: 'AuthLoading'
})

export const AppNavigator =  StackNavigator(
{
   Drawer : {
    screen : DrawerNav
  }, 
  Home: {
      screen:  Home   , 
  },
  Result : {
    screen: SearchResult
  } , 
  MyModal: {
      screen: ModalScreen,
  } ,

});
export const LoginedNavigator = StackNavigator(
{
    Drawer : {
        screen : DrawerNav
    } , 
    LoginedHome  : {
        screen : LoginedHome  ,
    } ,     
    Result : {
        screen: SearchResult
      } , 
    MyModal: {
        screen: ModalScreen,
    } 
} )

最后,我的具有独立路线的Drawer导航(它们都不在任何堆栈导航器中)看起来像这样:

export default DrawerNav =  createDrawerNavigator({
SimpleScreen: {
    screen : SimpleScreen ,
  } , 
About  : {
    screen : About 
}
})

在LoginedHome和其他页面中,我尝试通过以下方式打开此抽屉:

navigation.dispatch(DrawerActions.openDrawer());

因为,据我所知,嵌套导航器navigation.openDrawer()无法访问。 问题是,当我尝试打开Drawer时,它总是导航到其中的第一条路线(SimpleScreen)并在此屏幕中打开Drawer。 我做错了什么? 如何一起使用Switch和Drawer导航器来实现这种嵌套?

我确实做了很多研究,但无法解决此问题或找不到任何示例/解决方案,期望githib question也没有任何答案。

1 个答案:

答案 0 :(得分:0)

Okai,经过研究后,我做了下面的解决方案:

    Expression expression = parser.parseExpression("field1 + field2");
    EvaluationContext evaluationContext = new SecureEvaluationContext();
    Double value = expression.getValue(evaluationContext, new ControlElement(), Double.class);