在 React Native 中基于互联网连接运行功能

问题描述

我正在开发 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();

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...