Eu tenho um arquivo test_stuff.js com o qual estou executando npm test
É mais ou menos assim:
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));
});
});
});
Infelizmente, recebo o erro
/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)
O que isso significa? Estou importando o React do 'react' com sucesso, então por que o React seria indefinido? É _react.React, o que quer que isso signifique ...
javascript
reactjs
npm
react-jsx
Algum cara
fonte
fonte
import * as React from "react"
import React from 'react'
não é válido porque React não é a exportação padrão, mas funciona devido ao uso do ES6 em conjunto com o babel. Talvez sua configuração do babel seja diferente, forçando você a usar a sintaxe válida correta, que éimport * as React from 'react'
. Para mais informações: github.com/DefinitelyTyped/DefinitelyTyped/issues/5128babel-preset-expo
reactesModuleInterop
o texto digitado , o estilo de importação também será afetado pela configuração de no tsconfig. O tsconfig deve ser aplicado aos arquivos de teste (marqueinclude
efiles
).Isso funcionou para mim. Não sei por que isso corrigiu minha versão desse problema, no entanto. Portanto, se você é alguém que se deparou com esse problema e usa create-react-app como seu padrão inicial, esta maneira de importar o React resolverá o problema. (em outubro de 18, lol)
fonte
import { React, useState } from 'react'
;'react'
não exportaReact
como padrão por sé. No entantoexport useState
,export Component
etc.Para aqueles que estão trabalhando com ReactJS com TypeScript.
fonte
Alteração: import {React} de 'react' para importar React de 'react' Porque React é uma exportação padrão e você não precisa de chaves para nenhuma exportação padrão.
fonte
Se no caso de você precisar importar várias classes de 'react', você pode ter um alias para elas, exceto React. Algo como,
fonte
Este erro ocorreu-me devido ao descuido. É na verdade
Os colchetes são para exportações nomeadas, como este:
fonte
React
é exportado por padrão nesse módulo, sem necessidade {}.fonte