134 votes

Réaction du fichier JSX en générant l'erreur "Impossible de lire la propriété 'createElement' d'undefined"

J'ai un fichier test_stuff.js que je lance avec npm test

Cela ressemble à peu près à ceci:

 import { assert } from 'assert';
import { MyProvider } from '../src/index';
import { React } from 'react';

const myProvider = (
  <MyProvider>
  </MyProvider>
);

describe('Array', function() {
  describe('#indexOf()', function() {
    it('should return -1 when the value is not present', function() {
      assert.equal(-1, [1,2,3].indexOf(4));
    });
  });
});
 

Malheureusement, j'ai l'erreur

 /Users/me/projects/myproj/test/test_stuff.js:11
var myProvider = _react.React.createElement(_index.MyProvider, null);
                             ^

TypeError: Cannot read property 'createElement' of undefined
    at Object.<anonymous> (/Users/me/projects/myproj/test/test_stuff.js:7:7)
 

Qu'est-ce que ça veut dire? J'importe Réagir de 'réagir' avec succès, alors pourquoi React serait-il indéfini? C'est _react.React, quoi que cela veuille dire ...

272voto

Kafo Points 1245

Pour importer Réaction, faites import React from 'react' Vous ajoutez des crochets lorsque la chose que vous importez n’est pas l’export par défaut dans ce module ou ce fichier. En cas de réaction, c'est l'exportation par défaut.

Cela peut s’appliquer à vos autres importations en fonction de la façon dont vous les avez définies.

50voto

TJ Allen Points 51
 import React, { Component } from 'react'
 

Cela a fonctionné pour moi. Je ne suis pas sûr de savoir pourquoi cela a résolu ma version de ce problème. Donc, si vous êtes tombé sur ce problème et que vous utilisez create-react-app comme référence, cette méthode d'importation de React fera l'affaire. (à partir d'octobre 18, lol)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X