json - 使用 React hook 获取数据在嵌套 obj 属性上返回未定义

标签 json reactjs fetch react-hooks

我正在尝试显示已获取的数据。但我似乎无法在 react 中显示嵌套对象属性。有任何想法吗?如果我记录数据,我首先得到一个未定义的数据,然后是正确的数据。 我的猜测是我需要等待数据加载然后显示它。但它确实适用于不在嵌套对象中的标题。

function SingleBeneficiary({ match }) {

  const [data, setData] = useState({ data: []});
  const id = match.params.id

  useEffect(() => {
  async function fetchData() {
    const response = await fetch(`http://localhost:8081/v1/beneficiary/${id}`);
    const jsonData = await response.json()
    setData(jsonData)
    }
    fetchData();
  }, [])

  return (
 {data.title} // works
{data.address.careOf} // dont work

数据

{ 
  "title":"myTitle",
  "address":{
    "careOf": "my adress"
  }

}

最佳答案

你可以这样尝试吗? 我将初始数据设置为空,作为返回,我检查它是否不为空。 如果地址可以为空,则需要额外的空检查。

function SingleBeneficiary({ match }) {

  const [data, setData] = useState(null);
  const id = match.params.id

  useEffect(() => {
  async function fetchData() {
    const response = await fetch(`http://localhost:8081/v1/beneficiary/${id}`);
    const jsonData = await response.json()
    setData(jsonData)
    }
    fetchData();
  }, [])

    return (
      <div>
        {data && (
          <div>
            <p>data.title</p>
            <p>data.address.careOf</p>
          </div>
        )}
      </div>
    );
}

关于json - 使用 React hook 获取数据在嵌套 obj 属性上返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58236120/

相关文章:

javascript - 执行函数查看 JSON 文件是否包含特定字符串

java - 为 JSON 创建 POJO,其中子节点是动态的

javascript - 使用需要连接的名称字符串来 react ref 属性访问

java - 在 KAFKA 中生成和使用 JSON

Javascript 从 api 返回空数据

reactjs - 我想停止生成 12 个元素的单元格并将剩余部分保存到另一页

ReactJS Datepicker - 我希望日期选择器从本月开始并且仅

javascript - 将 Angular 6 与 HttpClient 一起使用时,如何切换到 Fetch 而不是 XHR

javascript - 使用解析的日期获取后,Typescript 将 JSON 转换为对象

javascript - 为什么我的数组是空的? React 读取 json api