![](/img/trans.png)
[英]React UseEffect works locally but not In production Netlify
[英]React useEffect how it works?
我正在為數據庫使用 firebase 雲。 此 useEffect 讀取集合中的每個文檔(“電子郵件”)
據我所知,useEffect 將在每次組件加載或
當某些數據發生變化時,如果我們將其設置為 [ ] ( useEffect() => {}, []);
但我的問題是,當我發送郵件(更新“電子郵件”)時,我的組件如何知道“重新呈現整個列表”。 當我在 last [] 中什么都沒有時
如果有人可以檢查上一篇文章,我的項目 gmail 克隆也有問題。
React.js + REDUX...我不知道,當我從加星標的部分刪除星號時,它會給我“電子郵件”(所有收件箱)而不是“加星標的電子郵件”
useEffect(() => {
const readData = () => {
db.collection("emails") // uzimi emails kolekciju
.orderBy("timestamp", "desc") // rapsoredi ih po timestampu
.onSnapshot((
snapshot // uzmi snapshot trenutni
) =>
setEmails(
// stavi mail da bude ovo
snapshot.docs.map((doc) => ({
id: doc.id, // id = doc.id nDqpnWjBpy....
data: doc.data(), // ovo je zapravo message,subject,to itd..
}))
)
);
};
}, []);
您剛剛在componentDidMount
掛鈎中定義了readData
function,您可能會在組件中更遠的地方使用它。 請記住,定義與調用不同。 還要記住 React 會在任何值(prop/state)發生變化時重新渲染組件。
因此,避免您所說的方法是有條件地實施setErrors
,如下所示:
setEmails(prevState => {
if (prevState === []) { // updating only initially, pass your initial emails' value here
return snapshot.docs.map((doc) => ({
id: doc.id,
data: doc.data()
}));
} else return prevState;
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.