你好,我已經成功地改變了我的Firestore內的一個檔案變數的值,但它沒有在視覺上更新(如果這有意義的話),只要我呼叫這個函式,它就會在硬重繪 或正常重繪 后更新。
這就是它在表格和Firestore中的樣子:
表格呈現Firestore
當我按下按鈕時,它確實將值改為 1,但直到我重繪 頁面時,它才會有視覺上的變化
。并且它也會改變。
而它在Firestore中也確實發生了變化
const mas = (producto, quantity)=> {
const temporalQuery = db.collection('productosAIB').doc(ducto)。
temporalQuery.update({
cantidad: 數量
})
};
這就是渲染和函式被呼叫的地方 :
< tbody>
{productos.map((productos, index) =>/span> (
<tr key={productos.id || index }> (
<td>
<button onClick={() => mas(productos.descriptionpcion, productos.cantidad)} /> />
{產品.數量][產品.數量][產品.數量
<button onClick={() => menos(productos.descriptionpcion, productos.cantidad)} /> {productos.cantidad> />
</td>
<td>{productos.grado}</td>
<td>/span>
{pos(192,252)}產品描述
</td> {productos.descripcion}
<td >${productos.precio}</td>
</tr>/span>
))
}
</tbody>
從Firebase讀取的部分
const [productos, setProductos] = useState([] ) 。
const productosRef = db.collection('productosAIB')。
useEffect(() => {
productosRef.orderBy('cantidad'/span>)
.get()
.then((snapshot) => {
const tempData = [] 。
snapshot.forEach((doc) =>/span> {
const data = doc.data()。
tempData.push(data)。
});
setProductos(tempData)。
});
}, []);
如果你需要整個代碼,請告訴我。它完成了作業,但我只想知道是否有辦法讓它實時呈現。
uj5u.com熱心網友回復:
你正在使用.get(),它從資料庫中讀取檔案只需一次。如果你想繼續聆聽變化,請使用onSnapshot代替:
useEffect(() => {
productosRef.orderBy('cantidad'/span>)
.onSnapshot()
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/321044.html
標籤:
上一篇:如何在AngularMaterial中動態地改變按鈕的背景顏色而不需要點擊它
下一篇:點擊鏈接時關閉導航



