必须将 NetInfo 传递给 networkMonitor 以启用 React Native 中的可访问性

Posted

技术标签:

【中文标题】必须将 NetInfo 传递给 networkMonitor 以启用 React Native 中的可访问性【英文标题】:NetInfo must be passed to networkMonitor to enable reachability in React Native 【发布时间】:2021-12-21 21:18:23 【问题描述】:

组件在导入后使用的任何快照测试都出现以下错误

import  Auth  from 'aws-amplify';

测试套件无法运行

NetInfo must be passed to networkMonitor to enable reachability in React Native

  at ReachabilityNavigator.Object.<anonymous>.ReachabilityNavigator.networkMonitor (node_modules/@aws-amplify/core/src/Util/Reachability.native.ts:20:10)
  at Object.<anonymous> (node_modules/@aws-amplify/datastore/src/sync/datastoreReachability/index.native.ts:4:55)
  at Object.<anonymous> (node_modules/@aws-amplify/datastore/src/sync/datastoreConnectivity.ts:3:1)

【问题讨论】:

【参考方案1】:

如果您转到aws-aplify 代码,则会在此networkMonitor 函数中引发该错误,该函数在使用@react-native-community/netinfo 的其他place 中调用。模拟 lib README 中指示的依赖项应该可以解决问题。

如果您没有配置 Jest 安装文件,您应该添加 按照您的 Jest 设置并在其中创建 jest.setup.js 文件 项目根目录:

setupFiles: ['<rootDir>/jest.setup.js']

然后您应该添加 按照您的 Jest 设置文件来模拟 NetInfo 本机模块:

import mockRNCNetInfo from '@react-native-community/netinfo/jest/netinfo-mock.js';

jest.mock('@react-native-community/netinfo', () => mockRNCNetInfo);

【讨论】:

以上是关于必须将 NetInfo 传递给 networkMonitor 以启用 React Native 中的可访问性的主要内容,如果未能解决你的问题,请参考以下文章

为啥我必须将道具传递给构造函数和超级[重复]

如何让 NetInfo 与 expo-web 一起工作?

为啥在这种情况下我必须将指针传递给指针

NetInfo 状态更新错误

React-Native 获取设备当前网络状态 NetInfo

将 opencv Mat 传递给函数时,对非常量的引用的初始值必须是左值