Tengo un archivo test_stuff.js con el que estoy ejecutando npm test
Se parece mucho a esto:
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));
});
});
});
Desafortunadamente, recibo el error.
/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é significa eso? Estoy importando React de 'react' con éxito, entonces ¿por qué React no estaría definido? Es _react.React, lo que sea que eso signifique ...
javascript
reactjs
npm
react-jsx
Algún chico
fuente
fuente
import * as React from "react"
import React from 'react'
no es válido ya que React no es la exportación predeterminada, pero funciona debido al uso de ES6 junto con babel. Tal vez su configuración de babel sea diferente y lo obligue a usar la sintaxis válida correcta que esimport * as React from 'react'
. Para más información: github.com/DefinitelyTyped/DefinitelyTyped/issues/5128babel-preset-expo
github.com/expo/babel-preset-expo/blob/master/index.jsesModuleInterop
en tsconfig. El tsconfig debe aplicarse a los archivos de prueba (marqueinclude
yfiles
).Esto funcionó para mí. Sin embargo, no estoy seguro de por qué solucionó mi versión de este problema. Entonces, si usted es alguien que tropezó con este problema y usa create-react-app como su plantilla inicial, esta forma de importar React funcionará. (a partir de octubre de 2018, lol)
fuente
import { React, useState } from 'react'
;'react'
no exportaReact
como no predeterminado per sé. Sin embargoexport useState
,export Component
, etc.Para aquellos que están trabajando ReactJS con TypeScript.
fuente
Cambio: importar {React} de 'react' para importar React de 'react' porque React es una exportación predeterminada y no necesita llaves para ninguna exportación predeterminada.
fuente
Si, en caso de que necesite importar varias clases de 'react', puede tener un alias para ellas, excepto React. Algo como,
fuente
Este error se me ocurrió debido a un descuido. En realidad es
Los corchetes son para exportaciones con nombre como esta:
fuente
React
se exporta de forma predeterminada en ese módulo, no es necesario {}.fuente