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總是被髮送到朋友邀請屏幕,不用說,這是非常煩人和耗時的。
你已經寫在儀表板和朋友的初始也是如此反應本地路由器通量考慮最後一個朋友作爲初始場景。 –
這是不正確的方式來確定初始場景 –
只有一個屏幕將被初始化,你必須通過一些布爾標誌導航到另一個 –