React JS + Axios首先返回未定义的

cmssoen2  于 2022-11-05  发布在  iOS
关注(0)|答案(1)|浏览(185)

我尝试让一个axios get从上下文文件进入函数,并从组件调用它来返回数据。
上下文文件:

const getPets = async () => {
await axios.get('http://localhost:1337/api/pets?populate=*')
  .then((res) => {
    return res.data
  })
  .catch(err => {
    console.log(err)
 })}

组件文件:

const [pets, setPets] = useState([])

useEffect( () => {
setPets(getPets())},[])

return (console.log(pets))

返回值是未定义的,我不知道为什么。我们可以帮助我吗?
谢谢!

jgzswidk

jgzswidk1#

修改getPets()函数:

const getPets = async () => {
    const res = await axios.get('http://localhost:1337/api/pets? populate=*');
    return res.data;
}

getPets()返回一个承诺

useEffect(() => {
    getPets().then(res => setPets(res));
}, []);

return (
    <>
        {pets?.map(pet => { /* some JSX */})}   
    </>
);

相关问题