在没有导航道具的情况下反应导航导航不起作用

时间:2019-02-07 16:26:33

标签: reactjs react-native react-navigation react-native-navigation react-navigation-stack

我有一个react-native应用程序,我正在使用新的Context API来管理存储和内容,现在我将createAppContainer(AuthNavigator)封装在上下文api创建的<Provider>中,因此,为了从Context API文件中导航,我尝试通过创建NavigationService并将ref的{​​{1}}传递到{ {1}},并使用AppContainer,无论如何它都没有起作用,也没有引发任何类型的错误

这是我的router.js

NavigationService

这是我的导航服务文件

{ NavigationActions }

这是我要从中导航的提供商

这是一个React Context API

  const AuthNavigator = createSwitchNavigator(
    {
      Authenticated: Authenticated,
      UnAuthenticated: UnAuthenticated,
    },
    {
      initialRouteName: props.is_authenticated ? 'Authenticated' : 'UnAuthenticated'
    }
  )

  const Router = createAppContainer(AuthNavigator);

  return (

    <Provider style={{ width: '100%', height: '100%' }}>
      <Router ref={ ref => NavigationService.setTopLevelNavigator(ref) } />
      <DropdownAlert
        successColor="#26296A"
        titleStyle={{ fontFamily: 'DINNextLTArabic-Regular', lineHeight: 18, color: '#fff', textAlign: 'center' }}
        messageStyle={{ fontFamily: 'DINNextLTArabic-Regular', lineHeight: 16, color: '#fff', textAlign: 'center' }}
        imageStyle={{ display: 'none' }}
        ref={ (ref) => Flash.setDropDown(ref) }
      />
    </Provider>

  )

}

export default ReactNavigator;

1 个答案:

答案 0 :(得分:0)

根据react-navigation网站(https://reactnavigation.org/docs/en/navigating-without-navigation-prop.html)上的示例,您的route_name应该为routeName

他们需要专门使用routeNameparams键才能使用