2017-06-15 95 views
1

如何渲染棧導航器從React-navigation到特定屏幕? 我可以傳遞一個屏幕名稱作爲道具來初始加載時將StackNavigator渲染到該屏幕嗎?React-navigation StackNavigator渲染到特定屏幕

UPDATE: 我解決它通過傳遞道具堆棧導航,然後有條件地設置intialRouteName:

const Main = RootNavigator(userLoggedIn); 

然後渲染主像這樣<Main /> ,而不是直接的RootNavigator。

然後導航裏面的代碼:

export const RootNavigator = (userLoggedIn= false) => { 
    return StackNavigator(
    { 
     LoggedIn: { 
     screen: LoggedIn, 
     }, 
     LoggedOut: { 
     screen: LoggedOut, 
     } 
    },{ 
     initialRouteName: userLoggedIn? "LoggedIn" : "LoggedOut" 
    } 
); 
}; 
+0

查看示例和文檔https://reactnavigation.org – TomTom

+0

不是一個有用的答案。 – jasan

+0

你需要添加更多關於你的代碼的細節。這個決定在哪裏?什麼是接收你的道具/狀態?這些不同的屏幕是不同的組件?你使用Redux還是其他狀態容器?有不同的方法來處理這個問題,所以你[需要更具體](https://stackoverflow.com/help/how-to-ask)。 –

回答

0

是的,當你初始化你StackNavigator,第二個參數是選項。所以你可以這樣做:

StackNavigator({ <Your-Routes> }, { initialRouteName: 'MyFirstPage' }); 
+0

我已經知道我可以在我的StackNavigator中設置IntialRouteName,但是我想要做的是使這個intialRoutename動態,取決於某些道具。即如果我登錄我想在導航器中顯示screenA,如果我登錄了,則顯示screenB – jasan