![](/img/trans.png)
[英]How to receive Map data value of an array from firestore inside Dropdownlist
[英]How to receive data from Firestore and map it to an element?
我创建了一个电子商务网站。 我可以将数据推送到 firestore,但现在我想创建一个订单历史页面,并将接收到的数据 map 放入“产品”元素中。
我能够将数据重新发送到控制台,但不能 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])
映射 -
<div className='orderPageProduct'>
{order?.map(order => (
<OrderProduct order={order} />
))}
</div>
我只是一个初学者,不知道如何进行。
看起来您忘记了在onSnapshot
处理程序中调用setOrders
,这意味着您的 state 永远不会更新,因此您的 UI 永远不会使用来自数据库的订单重新呈现。
要解决该特定问题:
useEffect(() => {
if (user) {
onSnapshot(doc(db, "orders", user?.email), (doc) => {
const orderData = doc.data().order; // 👈
setOrder([orderData]); // 👈
});
} else {
setOrder([])
}
}, [user])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.