3 回答
TA贡献1851条经验 获得超5个赞
使用 respo.data 代替:
您的响应有一个您需要获取的数据密钥。
import React, { useEffect } from 'react';
import {useState} from 'react';
import logo from './logo.svg';
import './App.css';
import axios from 'axios';
function App() {
const [monster,setMonster]=useState([]);
useEffect(()=>{
async function fetchData() {
const respo=await axios.get('https://jsonplaceholder.typicode.com/users')
const resp=await respo.data;
setMonster({monster:[...respo]});
}
fetchData();
},[]);
return (
<div className="App">
<p>{console.log(monster)}</p>
</div>
);
}
export default App;
工作代码:https://codesandbox.io/s/elated-platform-1itbi?file =/src/App.js
TA贡献1785条经验 获得超4个赞
您的代码中有两个问题:
const {monster,setMonster}=useState([]);
这应该是:
const [monster,setMonster] = useState([]);
const resp = await respo.data;
这应该是:
const resp = respo.data;
respo.data
不是承诺,而是 api 的结果。
笔记:
要更新monster
,您必须调用setMonster(resp)
notsetMonster({ monster: resp })
TA贡献1853条经验 获得超9个赞
只使用 get/then 而不是 async/await 怎么样?
useEffect(()=>{
axios.get('https://jsonplaceholder.typicode.com/users')
.then(response => {
setMonster({
monster:[...response.data]
});
});
}
},[monster]);
添加回答
举报