Ios 用户登录后,使用“我的配置文件”选项卡动态更改“登录”选项卡
在应用程序启动时,将显示“登录”底部选项卡。我试图实现的是在用户登录应用程序后,将显示的“登录”选项卡更改为“我的个人资料”选项卡 我使用Redux来存储应用程序的登录状态,并设法获取状态,但我不知道如何使用它来动态更改选项卡 以下是声明的两个选项卡:Ios 用户登录后,使用“我的配置文件”选项卡动态更改“登录”选项卡,ios,reactjs,react-native,react-redux,react-navigation,Ios,Reactjs,React Native,React Redux,React Navigation,在应用程序启动时,将显示“登录”底部选项卡。我试图实现的是在用户登录应用程序后,将显示的“登录”选项卡更改为“我的个人资料”选项卡 我使用Redux来存储应用程序的登录状态,并设法获取状态,但我不知道如何使用它来动态更改选项卡 以下是声明的两个选项卡: // MainTabNavigator.js const LoginStack = createSwitchNavigator({ Login: LoginScreen, }); LoginStack.navigationOptions
// MainTabNavigator.js
const LoginStack = createSwitchNavigator({
Login: LoginScreen,
});
LoginStack.navigationOptions = {
tabBarVisible: true,
tabBarLabel: 'Login',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={Platform.OS === 'ios' ? 'ios-link' : 'md-link'}
/>
),
}
const MyProfileStack = createSwitchNavigator({
MyProfile: HomeScreen,
});
MyProfileStack.navigationOptions = ({navigation}) => ({
tabBarVisible: true,
tabBarLabel: 'My Profile',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={Platform.OS === 'ios' ? 'ios-person' : 'md-person'}
/>
),
})
export default createBottomTabNavigator({ LoginStack })
我想我可以在tabs页面文件中使用它,如下所示:
// MainTabNavigator.js
const InterChangeTab = IsLoggedIn ? MyProfileStack : LoginStack
export default createBottomTabNavigator({ InterChangeTab })
但它不起作用,因为IsLoggedIn是一个组件,而不是一个常规函数。为什么不直接在
iLoggedin
上返回您的LoginStack
或MyProfileStack
函数IsLoggedIn(道具){
返回({props.loginState.isLoggedIn?:})
}
实际上,在我看来,我更喜欢使用另一个switchNavigator在登录屏幕和我的内容屏幕之间切换,签出将其设置为具有rerender的状态。@SnehaBharti我认为我们在使用状态时遇到了同样的问题:,您如何对rerender导航作出反应?是的。。构建2功能。。1个用于登录前,1个用于登录后,并使用condition@SnehaBharti很抱歉,我不明白,我应该在哪里创建这两个函数?我试过了,但它说:“这个导航器缺少导航道具。”。在react navigation 3中,您必须直接设置应用程序容器,对吗?我相信您正在尝试文档中的身份验证流程?你能分享你所有的导航器堆栈吗,以及你想从哪里调用
导航
道具?嘿,我刚刚浏览了你的代码。我有一个建议,你可以完全摆脱你的IfLoggedIn.js
,在MainTabNavigator
上包括你的登录和配置文件堆栈。要导航,你可以在登录
屏幕的组件更新
上检查你的状态,然后,或者(我甚至更好)在您的redux操作中,检查并确认登录成功。
// MainTabNavigator.js
const InterChangeTab = IsLoggedIn ? MyProfileStack : LoginStack
export default createBottomTabNavigator({ InterChangeTab })