0

说明: 当app运行在后台或者Locked时,当用户解锁或者前台app时,使用NetInfo();钩子返回为 isConnected 为 false。即使我尝试重新获取状态仍然使用NetInfo.fetch()返回相同的状态。

它发生在连接到 Wifi 的 Android 真实设备中

包名: “@react-native-community/netinfo”:“^7.1.2”,

代码:

 const netInfo = useNetInfo();
  const [show, setShow] = useState(false);

  useEffect(() => {
    setShow(!(netInfo.isConnected && netInfo.isInternetReachable));
  }, [netInfo]);

  useEffect(() => {
    fetchConnection();
  }, []);

  const fetchConnection = () => {
    NetInfo.fetch().then((state: any) => {
      setShow(!(state.isConnected && state.isInternetReachable));
    });
  };

4

2 回答 2

0

添加导航焦点事件侦听器并在屏幕聚焦时检查网络更新。

于 2021-11-29T09:38:43.737 回答
0

我通过将包版本恢复为 来解决此问题"@react-native-community/netinfo": "5.9.7",另外,将androidXCore版本更改为 1.6.0。现在它按预期工作。

原因: 由于androidXCore版本1.7.0中的休眠功能更改。Netinfo如果应用程序处于休眠状态,则不会正确返回状态。请在即将发布的版本中修复此问题。谢谢。

于 2021-11-29T08:51:33.500 回答