J'ai un fichier test_stuff.js avec lequel je cours 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'obtiens 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 avec succès React depuis 'react', alors pourquoi React ne serait-il pas défini? C'est _react.React, quoi que cela signifie ...
javascript
reactjs
npm
react-jsx
Un gars
la source
la source
import * as React from "react"
import React from 'react'
n'est pas valide car React n'est pas l'exportation par défaut, mais cela fonctionne grâce à l'utilisation d'ES6 en conjonction avec babel. Peut-être que votre configuration babel est différente, ce qui vous oblige à utiliser la syntaxe correcte correcte qui estimport * as React from 'react'
. Pour plus d'informations: github.com/DefinitelyTyped/DefinitelyTyped/issues/5128babel-preset-expo
reactesModuleInterop
dans tsconfig. Le tsconfig doit s'appliquer aux fichiers de test (checkinclude
etfiles
).Cela a fonctionné pour moi. Je ne sais pas pourquoi cela a résolu ma version de ce problème. Donc, si vous êtes quelqu'un qui est tombé sur ce problème et que vous utilisez create-react-app comme base standard de départ, cette façon d'importer React fera l'affaire. (à partir d'octobre 18, lol)
la source
import { React, useState } from 'react'
;'react'
il n'exporteReact
pas par défaut par sé. Cependant, ilexport useState
,export Component
etc.Pour ceux qui travaillent ReactJS avec TypeScript.
la source
Modification: importez {React} depuis 'react' pour importer React depuis 'react' Parce que React est une exportation par défaut et que vous n'avez pas besoin d'accolades pour les exportations par défaut.
la source
Si vous avez besoin d'importer plusieurs classes depuis 'react', vous pouvez avoir un alias pour elles sauf React. Quelque chose comme,
la source
Cette erreur m'est venue à cause de la négligence. C'est en fait
Les crochets sont destinés aux exportations nommées telles que celle-ci:
la source
React
est exporté par défaut dans ce module, pas besoin {}.la source