【发布时间】:2017-01-05 12:23:16
【问题描述】:
版本
- react-native-router-flux v3.35.0
- react-native 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>
我想从详细信息导航到课程。但是课程是另一个标签下的标签。我该怎么做?
我只能导航到标签栏场景,不能导航到课程或注册。
【问题讨论】:
-
您是否尝试过 Actions.create 在渲染之前创建场景并将其传递给路由器场景道具?另外,请尝试禁用任何“初始”道具,因为这会给我带来问题。 Switch 遇到了什么问题?我遇到了很多麻烦,但解决了...当 Switch 更改时帮助我强制重新渲染的一个技巧是将路由器密钥设置为包括 Switch 状态的一部分...即经过身份验证与访客...确保当 Switch 改变时改变密钥。不要忘记 Actions.refresh。对我来说似乎很老套,但似乎经常被用作“逃生舱”。
标签: javascript react-native react-router react-native-router-flux