React Native Router Flux:从主场景导航到子场景

问题描述 投票:8回答:2

Version

  • react-native-router-flux v3.35.0
  • 本机反应v0.31

我的场景很少。其中一个场景的子场景很少。如何从一个主场景导航到其中一个子场景?

示例:

<Router createReducer={reducerCreate} getSceneStyle={getSceneStyle}>
        <Scene key="root">
          <Scene key="login" direction="vertical" component={Login} title="Login" hideTabBar hideNavBar />
          <Scene key="tabbar" initial={show}>
            <Scene key="main" tabs tabBarStyle={styles.tabBarStyle} tabBarSelectedItemStyle={styles.tabBarSelectedItemStyle} tabBarIconContainerStyle={styles.tabBarIconContainerStyle} >
              <Scene key="courses" component={Courses} title="Courses" icon={IconCourses} navigationBarStyle={styles.navigationBarStyle} titleStyle={styles.titleStyle} initial />
              <Scene key="register"  component={Register} title="Register" icon={IconRegister} navigationBarStyle={styles.navigationBarStyle} titleStyle={styles.titleStyle} />
              <Scene key="schedule" component={Schedule} title="Schedule" icon={IconSchedule} navigationBarStyle={styles.navigationBarStyle} titleStyle={styles.titleStyle} />
              <Scene key="evaluation" component={Schedule} title="Evaluation" icon={IconEvaluation} navigationBarStyle={styles.navigationBarStyle} titleStyle={styles.titleStyle} />
              <Scene key="profile"
              component={Profile}
              title="Profile"
              icon={IconProfile}
              navigationBarStyle={styles.navigationBarStyle}
              titleStyle={styles.titleStyle}
              onLeft={() => { Actions.login(); }}
              leftTitle="Add Account"
              onRight={() => { Actions.login({type: 'reset'}); }}
              rightTitle="Logout"
              rightButtonTextStyle={styles.ButtonTextStyle}
              leftButtonTextStyle={styles.ButtonTextStyle}
              leftButtonStyle={styles.leftButtonStyle} />
            </Scene>
          </Scene>
          <Scene key="terms" component={Terms} />
          <Scene key="details" component={Details} title="Details" navigationBarStyle={styles.navigationBarStyle} titleStyle={styles.titleStyle} backButtonTextStyle={styles.backButtonTextStyle} hideTabBar />
        </Scene>
      </Router>

我想从详细信息导航到课程。但课程是另一个课程。我怎样才能做到这一点?

我只能导航到tabbar场景,而不是课程或注册。

javascript react-native react-router react-native-router-flux
2个回答
16
投票

如果你先导航到tabbar,我发现你可以切换到内部标签,例如:

<Button onPress={() => {
    Actions.tabbar({type:ActionConst.RESET});
    Actions.courses();
}} title="See Courses" />

第一个场景转换将场景重置为标签栏,默认情况下会显示您的initial场景,然后第二个转换将替换当前场景,因为react-native-router-flux处理标签场景转换的方式。


1
投票

我实际上回答了一个非常相似的问题here。问题是,从login的上下文中你可以访问Actions.tabbar,然后它会将你引导到一个嵌套的场景,其中initial prop设置为true,或者堆栈中的第一个嵌套场景。要查看我正在谈论的内容的示例,请参阅本答案第一行中包含的链接。

希望这可以帮助! :)

© www.soinside.com 2019 - 2024. All rights reserved.