我试图在登录后检索要显示的用户数据(姓名、电子邮件(,但我一直得到undefined
,但每当我console.log( user )
时,我都会看到所有数据,包括姓名和电子邮件
Context.js
import React from 'react';
const AuthContext = React.createContext();
export default AuthContext;
App.js
import AuthContext from './context';
const App = () => {
const [user, setUser] = useState();
return (
<AuthContext.Provider value={{user, setUser}}>
<NavigationContainer>
{ user ? <AppNavigator /> : <AuthNavigator/> }
</NavigationContainer>
</AuthContext.Provider>
)
}
Panel.js
const Panel = ({navigation}) => {
const { user } = useContext(AuthContext);
return (
<View style={styles.container}>
<Text>Name {user.name} </Text>
<Text>Email {user.email} </Text>
</View>
)
}
登录.js
const handleSubmit = async ( { email, password } ) =>{
const response = await axios.post(userLogin,
{
email,
password,
})
.then((response) => {
const user = response.data;
authContext.setUser(user);
// console.log(response.data);
})
.catch(error => {
console.log(error);
});
}
控制台日志(用户(结果
Object {
"token": "27|YUHmPPwmRkgQRFkAmbEpSjweXN6QI8eR7O1bHhfd",
"user": Object {
"id": 2,
"name": "maria",
"email": "maria@mail.com",
"user_type": "vendor",
"vendor_address": "55 bola way road",
"vendor_fullname": "maria smith",
},
}
感谢的帮助
这可能是因为最初呈现用户是未定义的,所以您无法访问电子邮件和您可以使用user?的名称?。使用者电子邮件的名字是这样的。为了验证我所说的,尝试在App.js中给一个静态用户,你会看到错误已经消失