首页 > 解决方案 > 在 react-native 开发环境中测试和记录“Device Offline”

问题描述

我正在为我的应用程序构建离线功能,并且无法弄清楚如何正确测试它们。

我正在使用包装在上下文中的 net-info 库为应用程序提供有关设备连接状态的信息:

const Connection = ({ children })=>{

    const netInfo = useNetInfo();

    const {
        isConnected,
        type,
    } = netInfo;
 

    useEffect(()=>{
        console..log(`CONNECTION ${isConnected} ${type}`);  
    },[ isConnected, type]);

    return (
        <ConnectionContext.Provider
            value={{
                online: netInfo.isConnected,
                type: netInfo.type,
            }}
        >
            { children }
        </ConnectionContext.Provider>
    )
}

如果我手动断开 wifi 和数据连接,应用程序将失去与开发服务器的连接并停止向我提供信息/日志,我无法真正了解正在发生的事情。

我该如何解决这个问题?

标签: iosreact-native

解决方案


有两种方法可以对此进行测试。简单的方法和困难的方法。

  1. 艰难的方式,为android创建一个apk并将其放入您的模拟器中进行安装和测试。

  2. 模拟 isConnected 变量。这将在 5 秒后更改变量,因此您可以看到它从在线变为离线。

const [isConnected, setIsConnected] = useState(netInfo.isConnected);

const [type, setType] = useState(netInfo.type);

useEffect(()=>{
  setTimeout(()=>{
     setIsConnected(false);
  },5000);
 },[]);

//还需要将上下文提供程序的参数从 netInfo 更改为状态变量。


推荐阅读