我無法弄清楚為什么我無法顯示 producto 的資料,當我撰寫代碼并保存資料加載的檔案時,但是當我嘗試重繪 瀏覽器時出現此錯誤:
型別錯誤:無法讀取未定義的屬性(讀取“id”)
import React, { useState, useEffect } from "react";
import ProductoService from "../../../api/producto.service";
import { useParams } from "react-router-dom";
const VerProducto = () => {
const {id} = useParams();
const [producto, setProducto] = useState([]);
const [loading, setLoading] = useState(false);
useEffect(() => {
const getProducto = async () => {
setLoading(true);
const res = await ProductoService.get(id);
setProducto(res.data);
setLoading(false);
}
getProducto();
}, [id]);
const Loading = () => {
return(
<>
cargando...
</>
)
}
const MostrarProducto = () => {
return(
<>
<h1>{producto.data.id}</h1>
</>
)
}
return (
<div className="contenido">
{loading? <Loading/> : <MostrarProducto/>}
</div>
);
}
export default VerProducto;
uj5u.com熱心網友回復:
producto是初始渲染時的空陣列。改成這樣undefined
const [producto, setProducto] = useState();
然后只需檢查它是否在`MonstrarProducto'中定義:
const MostrarProducto = () => {
return(
<>
{producto && <h1>{producto.data.id}</h1>}
</>
)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/352864.html
標籤:反应
