【发布时间】:2021-08-03 00:27:45
【问题描述】:
我正在开发 React Native 应用程序,我使用 firebase 作为后端。我从 firebase 实时数据库中获取数据并将其呈现在页面上。但现在我希望我的应用程序能够离线支持。
我使用以下两个函数进行渲染。 对于来自数据库的列表
const loadListings = () => {
let data = [];
listingRef.orderByChild("created_at").on("value", (snapshot) => {
data = [];
snapshot.forEach((listing) => {
data.push(listing.val());
});
cache.store("listings", data.slice(0, 10)); // only stores latest ten listings
setListings(data);
setLoading(false);
});
};
然后在useEffect里面使用就好了。
useEffect(() => {
loadListings();
}, []);
对于缓存中的列表,我使用了这个。
const loadListingsCached = async () => {
let data = await cache.get("listings");
setListings(data);
};
现在我不能在 firs 函数中进行检查,因为效果挂钩只会运行一次,并且初始网络状态为空。它没有定义。 我该如何做到这一点? 顺便link to package I used for detecting connectivity
编辑 我将此钩子用作 useEffect() 的第二个参数,但对我不起作用
const netInfo = useNetInfo();
我
【问题讨论】:
-
this 回答你的问题了吗?
-
我试过了,还是不行
标签: firebase react-native firebase-realtime-database use-effect offline-caching