javascript - React Navigation 如何传递到 Tab navigator form Login Screen?
问题描述
我有一个路由器类。而且,我有一个登录屏幕。登录屏幕后,我想通过选项卡导航器页面。
这是我的登录页面
<Login.Navigator
screenOptions={{
headerShown: false
}}
>
<Login.Screen name="Initial" component={Initial} />
</Login.Navigator>;
这是我的 app.js
export default class App extends React.Component {
render() {
return (
<NavigationContainer>
<Tab.Navigator
tabBarOptions={{
activeBackgroundColor: "#212A39",
inactiveBackgroundColor: "#212A39"
}}
initialRouteName={"MainMenuTab"}
>
<Tab.Screen
name="MessagesTab"
component={MessagesStackScreen}
options={{
tabBarLabel: ({ focused, color }) => (
<TabLabel title={"messages"} focused={focused} />
),
tabBarIcon: ({ focused, color, size }) => (
<TabIcon
images={"messages"}
focused={focused}
iconName={"messages"}
/>
)
}}
/>
<Tab.Screen
name="MainMenuTab"
component={MainMenuStackScreen}
options={{
tabBarLabel: ({ focused, color }) => (
<TabLabel title={"Home"} focused={focused} />
),
tabBarIcon: ({ focused, color, size }) => (
<TabIcon
images={"mainMenu"}
focused={focused}
iconName={"mainMenu"}
/>
)
}}
/>
<Tab.Screen
name="ProfileTab"
component={ProfileStackScreen}
options={{
tabBarLabel: ({ focused, color }) => (
<TabLabel title={"messages"} focused={focused} />
),
tabBarIcon: ({ focused, color, size }) => (
<TabIcon
images={"profile"}
focused={focused}
iconName={"profile"}
/>
)
}}
/>
</Tab.Navigator>
</NavigationContainer>
);
}
}
这怎么可能。它的架构是什么?
解决方案
你可以这样使用
<NavigationContainer>
<Stack.Navigator>
{Store.userToken == null ? (
<Stack.Screen name="Login" component={LoginStackScreen} options={{ headerShown: false }} />
) : (
<Stack.Screen name="MainTabNavigator" component={MainTabNavigator} options={{ headerShown: false }} />)}
</Stack.Navigator>
</NavigationContainer>
然后你必须创建堆栈
function LoginStackScreen() {
return (
<LoginStack.Navigator initialRouteName={"Initial"}>
<LoginStack.Screen name="Initial" component={Initial} options={{ headerShown: false }} />
</LoginStack.Navigator>
);
}
推荐阅读
- c++ - 为什么这个 for 循环条件不起作用?
- angular - 有什么方法可以在 Angular7 中将变量从一个组件更改为另一个组件?
- php - Scraping show infinte loop above php 7.0?
- android - How to save the value from intent to variable and pass it to webservice api?
- spring-websocket - Spring stomp websocket“不完整的帧,正在重置输入缓冲区......”
- android - 使用 PUT 请求执行 httpclient 时出现异常
- mysql - NaviCat 中的 MySQL 语法错误 / WP 编辑器中的 OK
- testing - 无法从开发分支创建 jar
- python - 如何通过 Selenium 和 Python 在模态窗口中单击关闭按钮
- tfs - 使用 VssConnection 和用户名/密码连接到 Azure DevOps (TFS) 服务器