开发者社区> 问答> 正文

在react js中用于检查互联网连接的可重用钩子

对于我的示例应用程序,我试图检查互联网连接是否存在,我为此使用了一个可重用的钩子,如下所示

function useNetwork() {
    const [isOnline, setNetwork] = useState(window.navigator.onLine);
    const updateNetwork = () => {
        setNetwork(window.navigator.onLine);
    };
    useEffect(() => {
        window.addEventListener("offline", updateNetwork);
        window.addEventListener("online", updateNetwork);
        return () => {
            window.removeEventListener("offline", updateNetwork);
            window.removeEventListener("online", updateNetwork);
        };
    });
    return isOnline;
}

但是问题是它在chrome上工作,但是当我在safari上登记时,我试着打开wifiisOnline我在safari的控制台上也尝试过,作为window . navigator . I online它返回了我的真实,

所以通读不同的问题,一个,这里达尼洛建议发送一个httpRequest并检查它。

所以我应该向google.com这样的网站发送get请求,这样我就可以知道状态,并设置我的在线价值为真。因为我认为我需要轮询这个,因为当dom改变时,上面的钩子会很小心,但是

我怎样才能做到这一点,或者还有更好的方法。

我如何在上面的可重用钩子中实现这个。

感谢任何帮助

展开
收起
sossssss 2019-12-09 17:06:59 872 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载