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
但这两种解决方案都不奏效。
有谁知道如何解决这个问题吗?
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');
#2楼
得票数 0
在我的例子中,我在package.json中添加了一个包,但忘记了添加配置
在ios podfile中,你可以从package.json中删除该包,或者为ios添加配置,这对我有帮助。运行npm i