0

我从 React Native 开始,我在这里遇到了这个小问题。我有一个bottomTabNavigator,如果用户有权限,他导航到ImageScreen,否则,它导航到HomeScreen。

我的函数 global.hasPermission() 检查权限并返回 true 或 false,所以我希望能够根据函数返回的内容更改 {screen: ImageScreen}。我该怎么做?我在哪里调用我的函数 hasPermission()?

这是我的 tabNavigator:

const BottomTab = createBottomTabNavigator({
    Image: {
        screen: ImageScreen,
        navigationOptions: {
            tabBarLabel: 'Image Screen',
            tabBarIcon: ({ tintColor, focused }) => (
                <Ionicons
                    name={'ios-camera'}
                    size={focused ? 30 : 26}
                    style={{ color: tintColor }}
                />
            ),
        },
    },
});
4

1 回答 1

1

在我的应用程序中,我通过React Context API ( https://reactjs.org/docs/context.html )处理身份验证

几天前我回答了一个类似的问题,您可以在此处查看如何创建使用上下文:如果页面受到保护且用户未登录,如何重定向到登录?

就像我之前的回答一样,您可以将用户权限检查到ImageScreencomponentDidMount ()中,并且如果他没有权限,您可以像这样将其重定向到您的主屏幕(假设您的主屏幕包含在 Stack Navigator 中):

// into your ImageScreen
componentDidMount () {
  const hasPermission = YourFunctionWhichReturnsTrueOrFalse()
  if (!hasPermission) this.props.navigation.navigate('home') // the title of your home screen here
}
于 2019-05-07T13:04:41.013 回答