.get()
.then()
,而是将其更改为onSnapshot
,并且已经起作用了。
componentDidMount() {
try {
firestore
.collection("orders")
.where("orderStatus", "==", "Pending")
.onSnapshot((snapshot) => {
const orders = [];
snapshot.docs.map((doc) => {
const items = [];
orders.push({
const items = [];
doc.data().items.forEach((item) => {
items.push(`${item.productName}(${item.qty}),`);
});
const data = doc.data();
orders.push({
"Order ID": doc.id,
"Items":items,
});
});
this.setState({ orders: orders });
// console.log(this.state.orders);
});
} catch (err) {
console.log(err);
}
}
您没有将数据附加到您的新订单数组中。您的代码:
snapshot.docs.map((doc) => {
const items = [];
const data = doc.data();
orders.push({
});
});
应该是:snapshot.docs.map((doc) => {
const items = [];
const data = doc.data();
// Append data to the array, or the right keys if you don't want the whole data
orders.push(data);
});
您应该直接更新状态...
this.setState(prevState => {orders: [...prevState.orders, data]})