React Native Router Flux: переход от основной сцены к дочерней
версия
- react-native-маршрутизатор-flux v3.35.0
- react-родной 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>
Я хочу перейти от деталей к курсам. но курсы-это вкладка под другой. как я могу это сделать?
Я могу перемещаться только к сцене таббара, а не курсам или реестр.
2 ответов
я обнаружил, что вы можете переключиться на внутренние вкладки, если вы ориентируетесь на tabbar
, например:
<Button onPress={() => {
Actions.tabbar({type:ActionConst.RESET});
Actions.courses();
}} title="See Courses" />
первый переход сцены сбрасывает сцену на панель вкладок и по умолчанию показывает ваш initial
сцена, второй переход затем заменяет текущую сцену из-за того, как react-native-router-flux обрабатывает переходы сцены вкладки.
Я на самом деле ответил на очень похожий вопрос здесь. Проблема в том, что из контекста login
У вас будет доступ к Actions.tabbar
и затем он направит вас либо к вложенной сцене с initial
prop установлено значение true или первая вложенная сцена в стеке. Чтобы увидеть пример того, о чем я говорю, обратитесь к ссылке, которую я включил в первую строку этого ответа.
надеюсь, что это помогает! :)