0
,当我有一个基于标签的场景结构:反应本地路由器通量,保守国家重装
当前的代码结构
Routes.js
class Routes extends Component {
render() {
function selector(props) {
return props.auth.isLoggedIn ? (props.auth.isVerified? 'home': 'authenticate') : 'authenticate'
}
const component = connect(state => ({
auth: state.auth,
}))(Switch)
return (
<AppRouter>
<Scene key="root" component={component} tabs selector={selector} hideNavBar hideTabBar>
<Scene key="authenticate" hideTabBar>
<Scene type="replace" key="login" initial component={GradientBackground(LoginScreen)} hideNavBar/>
<Scene type="replace" key="register" component={GradientBackground(RegisterScreen)} hideNavBar/>
<Scene type="replace" key="forgotPassword" component={GradientBackground(ForgotPasswordScreen)} hideNavBar/>
<Scene type="replace" key="emailConfirmation" component={GradientBackground(EmailConfirmationScreen)} hideNavBar/>
</Scene>
<Scene key="home" component={NavigationDrawer} type="replace">
{require('./scenes/home')}
</Scene>
</Scene>
</AppRouter>
)
}
}
home.js
module.exports = (
<Scene key="isLoggedIn" unmountScenes initial>
{require('./dashboard.js')}
{require('./profile.js')}
{require('./challenges.js')}
{require('./friends.js')}
</Scene>
)
个
Dashboard.js
module.exports = (
<Scene type="replace" key="dashboard" initial navigationBarStyle={styles.transparent} drawerImage={Images.menu} renderRightButton={() => <RoundedButton text="dashboard"/>}>
<Scene key="dashboard_home" component={GradientBackground(DashboardScreen)}/>
</Scene>
)
Friends.js
module.exports = (
<Scene key="friends" initial navigationBarStyle={styles.transparent} drawerImage={Images.menu} renderRightButton={() => <RoundedButton text="dashboard"/>}>
<Scene key="inviteFriends" component={GradientBackground(FriendsInviteScreen)} hideNavBar/>
</Scene>
)
通过应用程序的一切航行时工作正常。
实际行为
当我打重载(或Cmd的+ R),当前场景所示,离。一个配置文件屏幕,get的重置到另一个完全不同的场景。
Ex。目前在我的应用程序的逻辑是这样的:
第一次用户登录 - >显示好友邀请画面 - >去仪表板页面 每隔日志 - >去仪表板页面
但是每当我打Cmd + RI总是被发送到朋友邀请屏幕,不用说,这是非常烦人和耗时的。
你已经写在仪表板和朋友的初始也是如此反应本地路由器通量考虑最后一个朋友作为初始场景。 –
这是不正确的方式来确定初始场景 –
只有一个屏幕将被初始化,你必须通过一些布尔标志导航到另一个 –