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>