2016-08-05 61 views
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總是被髮送到朋友邀請屏幕,不用說,這是非常煩人和耗時的。

+0

你已經寫在儀表板和朋友的初始也是如此反應本地路由器通量考慮最後一個朋友作爲初始場景。 –

+0

這是不正確的方式來確定初始場景 –

+0

只有一個屏幕將被初始化,你必須通過一些布爾標誌導航到另一個 –

回答

0

經過一段時間的代碼擺弄和閱讀更多的文檔,似乎沒有簡單的方法來做到這一點(甚至不知道它是可能的),似乎這將是一個圖書館的新功能。

我現在使用的是hot reloading(搖動手勢 - >啓用熱重新加載),這並不理想,有些情況下行爲不像預期的那樣,我必須重新加載瀏覽器並手動導航到頁面,但70-80%的時間達到了我想要的水平。

相關問題