Я играю с React (@ 13.3) с babel и webpack.Реакция, как ожидается, будет доступна в мире
У меня есть компонент, который определен следующим образом:
import BaseComponent from './BaseComponent';
export default class SomeComponent extends BaseComponent {
render() {
return (
<div>
<img src="http://placekitten.com/g/900/600"/>
</div>
);
}
}
Но я получаю следующее сообщение об ошибке:
Uncaught ReferenceError: React is not defined
Я понимаю ошибку: бит JSX компилируется в React.createElement(...)
но React
ISN» t в текущей области, так как он не импортируется.
Мои вопросы: Каков чистый способ обойти эту проблему? Должен ли я как-то разоблачить React
глобально с помощью webpack?
Решение используется:
Я последовал @ salehen-Rahman предложение.
В моих webpack.config.js:
module: {
loaders: [{
test: /\.js$/,
exclude: /node_modules/,
loader: 'react-hot!babel?plugins[]=react-require'
}, {
test: /\.css$/,
loader: 'style!css!autoprefixer?browsers=last 2 versions'
}]
},
мне нужно исправить мои тесты, так что я добавил это в файле helper.js:
require('babel-core/register')({
ignore: /node_modules/,
plugins: ['react-require'],
extensions: ['.js']
});
Мои тесты запускаются с помощью следующей команды:
mocha --require ./test/helper.js 'test/**/*.js'
Вы пробовали 'импорт Реагировать из«реагировать» ; '? –
Импорт Импорт должен быть в BaseComponent. –
@ JanakaStevens это не имеет значения.Вышеприведенный код все равно не запускается, учитывая, что либо React не был импортирован вручную, либо нет трансформатора, который автоматически импортировал React. –