es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Violación invariante: `new NativeEventEmitter()` requiere un argumento no nulo.

Intenté ejecutar la prueba predeterminada en react-native utilizando jest y encontré este problema:

La suite de pruebas no se pudo ejecutar

Violación de Invariant: `new NativeEventEmitter()` requiere un argumento no nulo.

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

No tengo idea de cómo resolver este problema.

He intentado agregar la siguiente línea:

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

a jest.setup.js

o

><strong>mocks</strong>/native<em>event</em>emmiter.js 

pero ninguna solución funciona.

¿Alguien sabe cómo resolver esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Este error es causado por la dependencia NativeEventEmitter en el paquete @react-native-clipboard. Una posible solución es simular el NativeEventEmitter en tu archivo de prueba.

    Para hacerlo, puedes agregar el siguiente código al principio de tu archivo de prueba:

    jest.mock('react-native/Libraries/EventEmitter/NativeEventEmitter', () => ({
      addListener: jest.fn(),
      removeListeners: jest.fn(),
      removeAllListeners: jest.fn(),
      emit: jest.fn(),
    }));
    

    Esto creará un objeto simulado para el NativeEventEmitter que permitirá que tus pruebas se ejecuten sin errores.

    Ten en cuenta que es posible que necesites modificar este código si estás utilizando NativeEventEmitter en tu propio código, ya que esta simulación reemplazará el módulo original.

    Si esta solución no funciona, puedes intentar actualizar tus versiones de react-native y jest, o buscar ayuda en la comunidad o al mantenedor del paquete.

Comments are closed.