我创建了一个电子商务网站,可以将数据推送到firestore,但现在我想创建一个订单历史页面,并将接收到的数据Map到“Product”元素中。
我能够将数据显示到控制台,但无法Map。
const [{basket, user }, dispatch] = useStateValue();
const [order, setOrder] = useState([]);
useEffect(()=>{
if (user){
const orderData = onSnapshot(doc(db, "orders", user?.email), (doc) => {
console.log("Current data: ", doc.data().order);
});
}else{
setOrder([])
}
}, [user])
Map-
<div className='orderPageProduct'>
{order?.map(order => (
<OrderProduct order={order} />
))}
</div>
我只是个初学者,不知道该怎么做。
1条答案
按热度按时间5uzkadbs1#
看起来您忘记在
onSnapshot
处理程序中调用setOrders
,这意味着您的状态从未更新,因此您的UI从未使用来自数据库的订单重新呈现。为了解决这一具体问题: