function RequestDetail({match}) {
const [request, setRequests] = useState({});
const [data, setData]= useState([]);
useEffect(() => {
fetchRequest();
}, []);
const fetchRequest = () => {
axios
.get(
`${baseUrl}/${match.params.id}`
)
.then((res) => {
setRequests(res.data);
console.log(res.data);
})
.catch((err) => console.log(err));
};
<Card key={request.id}>
<Card.Header>{request.user.email}</Card.Header>
<Card.Body>
<Card.Title>{request.address}</Card.Title>
<Card.Text>
{request.description}<br/>
{request.kind}
</Card.Text>
</Card.Body>
</Card>
`
在控制臺我有這個

有什么建議么?
我只想映射包含在 json 中的用戶,我試過.map()但它通過 .map() 不是一個函式
uj5u.com熱心網友回復:
它顯示錯誤,因為該物件最初是空的,并且您在 request = {} 時嘗試訪問 request.user.email。
您可以嘗試可選鏈接 - 將 request.user.email 替換為 request?.user?.email
uj5u.com熱心網友回復:
盡管您將您的狀態初始化reuest為空物件,但在您獲取資料之前,您request.user的未定義,因此它無法讀取該email屬性。
一些解決方法可以是
<Card.Header>{request.user?.email}</Card.Header>const [request, setRequests] = useState({ user: {} });
uj5u.com熱心網友回復:
你應該這樣包裝Card:
{
request && (
<Card key={request.id}>
<Card.Header>{request.user.email}</Card.Header>
<Card.Body>
<Card.Title>{request.address}</Card.Title>
<Card.Text>
{request.description}
<br />
{request.kind}
</Card.Text>
</Card.Body>
</Card>
)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/526321.html
