undefined is not an object (evaluating 'userInfo._name') 帮助我
undefined is not an object (evaluating 'userInfo._name') help me
我问你这个问题是因为再次发生错误。
我们现在通过 axios 接收数据并通过 useState() 存储该数据。
所以如果你在屏幕上创建它并立即渲染它,你可以看到数据,但是如果你转到上一页并返回,就会发生错误。
请让我知道如何解决它。
我的错误
TypeError: undefined 不是一个对象(评估 'userInfo._name')
我的代码
import React, { useState, useEffect } from "react";
import { withNavigation } from "react-navigation";
import { Text, View, StyleSheet, SafeAreaView, Image } from "react-native";
import {
widthPercentageToDP as wp,
heightPercentageToDP as hp,
} from "react-native-responsive-screen";
import axios from "axios";
const MyPage = ({ navigation, info }) => {
const [userInfo, setUserInfo] = useState();
const getData = async () => {
try {
axios
.get(
"http://everyweardev-env.eba-azpdvh2m.ap-northeast-2.elasticbeanstalk.com/api/v1/user"
)
.then((res) => res)
.then((data) => {
setUserInfo(data.data.data.result);
})
.catch((err) => console.log(err));
} catch (error) {}
};
useEffect(() => {
const unsubscribe = navigation.addListener("focus", () => {
getData();
});
return unsubscribe;
}, [navigation]);
return (
<View>
{/* <Image source={require("../../images/profile.png")} /> */}
<Text>{userInfo._name}</Text>
<Text>{userInfo._mail}</Text>
</View>
);
};
export default withNavigation(MyPage);
问题出现在 userInfo 对象为 null 的初始渲染中。
执行类似下面的操作,仅当 userInfo
存在值时才访问 属性
<Text>{userInfo?._name}</Text>
<Text>{userInfo?._mail}</Text>
我问你这个问题是因为再次发生错误。 我们现在通过 axios 接收数据并通过 useState() 存储该数据。 所以如果你在屏幕上创建它并立即渲染它,你可以看到数据,但是如果你转到上一页并返回,就会发生错误。 请让我知道如何解决它。 我的错误 TypeError: undefined 不是一个对象(评估 'userInfo._name')
我的代码
import React, { useState, useEffect } from "react";
import { withNavigation } from "react-navigation";
import { Text, View, StyleSheet, SafeAreaView, Image } from "react-native";
import {
widthPercentageToDP as wp,
heightPercentageToDP as hp,
} from "react-native-responsive-screen";
import axios from "axios";
const MyPage = ({ navigation, info }) => {
const [userInfo, setUserInfo] = useState();
const getData = async () => {
try {
axios
.get(
"http://everyweardev-env.eba-azpdvh2m.ap-northeast-2.elasticbeanstalk.com/api/v1/user"
)
.then((res) => res)
.then((data) => {
setUserInfo(data.data.data.result);
})
.catch((err) => console.log(err));
} catch (error) {}
};
useEffect(() => {
const unsubscribe = navigation.addListener("focus", () => {
getData();
});
return unsubscribe;
}, [navigation]);
return (
<View>
{/* <Image source={require("../../images/profile.png")} /> */}
<Text>{userInfo._name}</Text>
<Text>{userInfo._mail}</Text>
</View>
);
};
export default withNavigation(MyPage);
问题出现在 userInfo 对象为 null 的初始渲染中。
执行类似下面的操作,仅当 userInfo
存在值时才访问 属性 <Text>{userInfo?._name}</Text>
<Text>{userInfo?._mail}</Text>