【发布时间】:2022-01-15 10:20:21
【问题描述】:
我正在使用 firebase 并尝试使用以下代码在应用程序启动时加载我的所有数据:
const [books, setBooks] = useState<BookType[]>([]);
const bookCollectionRef = collection(db, "books");
useEffect(() => {
const getBooks = async () => {
const data = await getDocs(bookCollectionRef);
const temp: BookType[] = data.docs.map((doc) => {
const book: BookType = {
//set properties
};
return book;
});
setBooks(temp);
};
getBooks();
}, [bookCollectionRef]);
这个 useEffect 不断地运行,让我相信我已经做了一个无限循环。我不明白为什么会发生这种情况,因为我认为我没有在 useEffect 挂钩内更新bookCollectionRef。 Firebase集合引用不断更新是否可能存在问题?任何想法都有帮助!
【问题讨论】:
-
你需要运行多少次?
-
@Jamal 一次
-
ok 将依赖项留空,如下所示:useEffect(() => { const getBooks = async () => { const data = await getDocs(bookCollectionRef); const temp: BookType[] = data. docs.map((doc) => { const book: BookType = { //set properties }; return book; }); setBooks(temp); }; getBooks(); }, [])
标签: reactjs firebase google-cloud-firestore react-hooks use-effect