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]);
添加回答
舉報