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"
}
);
};
答
是的,当你初始化你StackNavigator
,第二个参数是选项。所以你可以这样做:
StackNavigator({ <Your-Routes> }, { initialRouteName: 'MyFirstPage' });
+0
我已经知道我可以在我的StackNavigator中设置IntialRouteName,但是我想要做的是使这个intialRoutename动态,取决于某些道具。即如果我登录我想在导航器中显示screenA,如果我登录了,则显示screenB – jasan
查看示例和文档https://reactnavigation.org – TomTom
不是一个有用的答案。 – jasan
你需要添加更多关于你的代码的细节。这个决定在哪里?什么是接收你的道具/状态?这些不同的屏幕是不同的组件?你使用Redux还是其他状态容器?有不同的方法来处理这个问题,所以你[需要更具体](https://stackoverflow.com/help/how-to-ask)。 –