React-navigation StackNavigator渲染到特定屏幕

问题描述:

如何渲染栈导航器从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://*.com/help/how-to-ask)。 –

是的,当你初始化你StackNavigator,第二个参数是选项。所以你可以这样做:

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

我已经知道我可以在我的StackNavigator中设置IntialRouteName,但是我想要做的是使这个intialRoutename动态,取决于某些道具。即如果我登录我想在导航器中显示screenA,如果我登录了,则显示screenB – jasan