【发布时间】:2021-07-05 11:21:54
【问题描述】:
我正在尝试使用 AuthContext 和 useContext 挂钩来实现用户登录。如果用户已登录,我想在抽屉中显示用户名。但是当我尝试访问 CustomDrawerContent 功能组件中的 useContext 时,会出现以下错误。
//App.JsCodes
export default function App() {
const [user,setUser] = useState();
const Drawer = createDrawerNavigator();
return (
<AuthContext.Provider value={{user,setUser}}>
<NavigationContainer>
<Drawer.Navigator initialRouteName="MenuTab" drawerContent={CustomDrawerContent}>
<Drawer.Screen name="MenuTab" component={BottomTabNavigator} />
</Drawer.Navigator>
</NavigationContainer>
</AuthContext.Provider>
//CustomDrawerContend.js
function CustomDrawerContent({navigation}) {
const {user} = useContext(AuthContext);
useEffect(() => {
console.log('the CustomDrawerContent '+user);
},[]);
return (
<SafeAreaView style={{flex:1, paddingBottom:-30}}>
<TouchableOpacity style={{}} onPress={() => navigation.navigate("MenuTab")}>
<View style={{justifyContent:"center", alignItems:"center", padding:25, backgroundColor:"#bbe3fc", paddingTop:80}}>
<Image style={{height:65, width:65}} source={require('../../assets/profileLogo.png')} />
<Text>{user ? user.email : 'Sasindu'}</Text>
//登录代码块
const data = await response.json();
if (data.code=== 200) {
authContext.setUser(data.data);
console.log('Sign in screen user '+JSON.stringify(authContext.user));
setLoggedUser(data.data);
navigation.navigate('DrawerNav');
【问题讨论】:
标签: reactjs react-native authentication react-native-android react-native-navigation