У меня есть файл test_stuff.js, с которым я работаю npm test
Это примерно так:
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));
});
});
});
К сожалению, я получаю ошибку
/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)
Что это значит? Я успешно импортирую React из response, так почему же React не определен? Это _react.React, что бы это ни значило ...
javascript
reactjs
npm
react-jsx
Какой-то парень
источник
источник
import * as React from "react"
import React from 'react'
это недопустимо, поскольку React не является экспортом по умолчанию, но он работает благодаря использованию ES6 в сочетании с babel. Возможно, ваша конфигурация babel отличается, заставляя вас использовать правильный допустимый синтаксис, который естьimport * as React from 'react'
. Для получения дополнительной информации: github.com/DefinentyTyped/DefinitiTyped/issues/5128babel-preset-expo
github.com/expo/babel-preset-expo/blob/master/index.jsesModuleInterop
tsconfig. Tsconfig должен применяться к тестовым файлам (отметьтеinclude
иfiles
).Это сработало для меня. Я не уверен, почему он исправил мою версию этой проблемы. Итак, если вы тот, кто столкнулся с этой проблемой и используете приложение create-react-app в качестве исходного шаблона, этот способ импорта React сработает. (по состоянию на октябрь 18, смеется)
источник
import { React, useState } from 'react'
;'react'
что не экспортируетсяReact
как нестандартное по умолчанию. Однакоexport useState
,export Component
и т.д.Для тех, кто работает с ReactJS с TypeScript.
источник
Эта ошибка возникла у меня по неосторожности. Это на самом деле
Скобки предназначены для именованного экспорта, например:
источник
Изменение: импортируйте {React} из response в import React из response, потому что React - это экспорт по умолчанию, и вам не нужны фигурные скобки для любого экспорта по умолчанию.
источник
Если в случае, если вам нужно импортировать несколько классов из response, вы можете иметь для них псевдоним, кроме React. Что-то вроде,
источник
React
по умолчанию экспортируется в этом модуле, не требуется {}.источник