我在這里做錯了什么?我正在嘗試從我的 API 獲取資料,但它在我的第一次渲染中一直回傳 undefined,而下一次渲染作業正常。
const [data, setData] = useState([])
useEffect(() => {
const fetchData = async () => {
try {
const res = await axios.get("http://localhost:3001/homeFeed")
setData(res.data)
} catch(err) {
console.log(err)
}
}
fetchData()
}, [])
console.log(data)
// Output:
// []
// []
// {users: Array(5), id_usuario_logado: 25}
// {users: Array(5), id_usuario_logado: 25}
// {users: Array(5), id_usuario_logado: 25}
// {users: Array(5), id_usuario_logado: 25}
uj5u.com熱心網友回復:
這就是 React 的作業原理。useEffect在內部請求解決之前,React 不會停止渲染。
通常人們要么在開始時將狀態isLoading設定為true然后false在效果完成后設定,要么使用像 tanstack-query(以前稱為 react-query)這樣的庫來處理加載/錯誤狀態(以及更多),并且在加載時您可以有一個加載微調器或不顯示任何內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/533620.html
