Invariant Violation: `new NativeEventEmitter()` requires a non-null argument

回答 2 浏览 6485 2021-12-28

我试着用jest在react-native中运行默认的测试,我发现了这个问题。

Test suite failed to run

Invariant Violation: `new NativeEventEmitter()` requires a non-null argument.

  at invariant (node_modules/invariant/invariant.js:40:15)
  at new NativeEventEmitter (node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js:44:7)
  at Object.<anonymous> (node_modules/@react-native-clipboard/clipboard/dist/NativeClipboard.js:15:20)
  at Object.<anonymous> (node_modules/@react-native-clipboard/clipboard/dist/Clipboard.js:24:38)

我完全不知道该如何解决这个问题。

我试着添加了以下几行。

jest.mock('react-native/Libraries/EventEmitter/NativeEventEmitter');

到jest.setup.js

mocks/native_event_emmiter.js

但这两种解决方案都不奏效。

有谁知道如何解决这个问题吗?

Kamil Cessak 提问于2021-12-28
2 个回答
#1楼 已采纳
得票数 10

你是否在你的jest.config.js中加入了setupFiles

这对我来说是有效的。

//jest.config.js

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

jest.mock('react-native/Libraries/EventEmitter/NativeEventEmitter');
Nam Anh 提问于2022-01-15
另见github.com/ocetnik/react-native-background-timer/issues/…Pavel Chuchuva 2022-05-24
#2楼
得票数 0

在我的例子中,我在package.json中添加了一个包,但忘记了添加配置
在ios podfile中,你可以从package.json中删除该包,或者为ios添加配置,这对我有帮助。运行npm i

Hemang vora 提问于2022-08-16