Javascript 无法读取我从axios获取的对象的属性

Javascript 无法读取我从axios获取的对象的属性,javascript,reactjs,Javascript,Reactjs,我使用react-useState钩子设置空数组状态,然后使用useEffect使用axios获取一些占位符数据。放置后,我尝试获取对象,但它不断告诉我,如果我尝试获取postData.body,postData是未定义的 起初我认为这是因为它是一个数组,但当我使用typeof时,它清楚地表明它是一个对象。所以我很困惑这里到底出了什么问题。我是不是拿不到数据还是怎么了 提前谢谢 import React, { useState, useEffect } from 'react'; import

我使用react-useState钩子设置空数组状态,然后使用useEffect使用axios获取一些占位符数据。放置后,我尝试获取对象,但它不断告诉我,如果我尝试获取postData.body,postData是未定义的

起初我认为这是因为它是一个数组,但当我使用typeof时,它清楚地表明它是一个对象。所以我很困惑这里到底出了什么问题。我是不是拿不到数据还是怎么了

提前谢谢

import React, { useState, useEffect } from 'react';
import axios from 'axios';

function Home() {
  const [postData, setPostData] = useState([]);

    useEffect(() => {
      axios.get('https://jsonplaceholder.typicode.com/posts').then(res => {
        setPostData(res.data);
      })
    }, [])


    console.log(typeof(postData[1]))
    console.log(postData[1])

    return (
        <div className="container">
            <h4 className="center">Home</h4>
            <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. 
              Unde, deleniti, amet iste ratione fugiat, dolorem aliquid adipisci aperiam rem iure provident ad? 
              Incidunt recusandae pariatur nisi quaerat corporis harum aperiam.</p>
        </div>
      );
    }

    export default Home;
import React,{useState,useffect}来自“React”;
从“axios”导入axios;
函数Home(){
const[postData,setPostData]=useState([]);
useffect(()=>{
axios.get()https://jsonplaceholder.typicode.com/posts)。然后(res=>{
setPostData(res.data);
})
}, [])
console.log(typeof(postData[1]))
console.log(postData[1])
返回(
家
Lorem ipsum,dolor sit amet Concertetur Adipising Elite。
是否有,是否有,是否有合理的债务,是否有不动产,是否有人有权享有权利?
包括口腔体质量的反复发作

); } 导出默认主页;
编辑: 我刚刚看到我可以发布一张图片。所以这可能会对abit有所帮助:第一个映像是当我使用console.log(postData)时,第二个映像是当我使用console.log(postData.body)时


由于
axios.get
是异步的,因此当您尝试从函数组件内部而不是钩子中检查更改时,它将显示undefined。如果您想查看响应,可以直接添加到
axios.get
的成功中,如下面的代码所示

axios.get('https://jsonplaceholder.typicode.com/posts').then(res => {
  setPostData(res.data);
  console.log(res.data);
})
useEffect(() => {
    console.log(typeof(postData[1]));
    console.log(postData[1]);
}, [postData])
如果要确保已填写
postData
,可以检查以下代码

axios.get('https://jsonplaceholder.typicode.com/posts').then(res => {
  setPostData(res.data);
  console.log(res.data);
})
useEffect(() => {
    console.log(typeof(postData[1]));
    console.log(postData[1]);
}, [postData])

我明白你的意思。但是如果我console.log postdata[0]我得到了我需要的对象。它附加了属性。但是,当我将.body与它组合时,它只是乱了套,并说“TypeError:无法读取未定义的属性‘body’”注释不用于扩展讨论;此对话已结束。