let [item, setItem] = useState({});
let [comments, setComments] = useState([]);
useEffect(async () => {
await axios
.all([
axios.get(`https://dummyapi.io/data/v1/post/${id}`, {
headers: { "app-id": process.env.REACT_APP_API_KEY }
}),
axios.get(`https://dummyapi.io/data/v1/post/${id}/comment`, {
headers: { "app-id": process.env.REACT_APP_API_KEY }
})
])
.then(
axios.spread((detail, comment) => {
setItem({ ...detail.data })
setComments([...comment.data.data])
})
)
.catch((detail_err, comment_err) => {
console.error(detail_err);
console.error(comment_err);
});
}, []);
我像上面一样设置了状态。我试图在 return() 中使用 State,但它似乎没有等待数据集。
return (
<div>
{item.tags.map((tag, index) => {
return <Chip label={tag} key={index} />
})}
</div>
)
因为我收到这样的错误消息:Uncaught TypeError: Cannot read properties of undefined (reading 'map')。由于我初始化了'item'只是空的{object},所以它无法读取'item.tags',这是由useEffect中的setState设置的。
我如何等待数据集?