Gram z Reactem (@ 13.3) z babel i pakietem internetowym.React ma być dostępny na całym świecie.
Mam składnik, który jest zdefiniowany następująco:
import BaseComponent from './BaseComponent';
export default class SomeComponent extends BaseComponent {
render() {
return (
<div>
<img src="http://placekitten.com/g/900/600"/>
</div>
);
}
}
Ale pojawia się następujący błąd:
Uncaught ReferenceError: React is not defined
Rozumiem błąd: bit JSX jest kompilowany do React.createElement(...)
ale React
ISN” t w bieżącym zakresie, ponieważ nie został zaimportowany.
Moje pytania są następujące: Jaki jest czysty sposób obejścia tego problemu? Czy muszę w jakiś sposób narazić się na globalną prezentację za pomocą pakietu internetowego?
roztworu stosowanego:
I po @ salehen Rahman propozycję.
W moich 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'
}]
},
Musiałem także naprawić moich testów, więc dodałem to do helper.js plików:
require('babel-core/register')({
ignore: /node_modules/,
plugins: ['react-require'],
extensions: ['.js']
});
moich testów są następnie uruchamiane za pomocą następującego polecenia:
mocha --require ./test/helper.js 'test/**/*.js'
Czy próbowałeś 'import React od„reagować” ; '? –
import React powinien znajdować się w BaseComponent. –
@JanakaStevens to nie ma znaczenia.Powyższy kod nadal nie powinien być uruchamiany, biorąc pod uwagę, że React nie został ręcznie zaimportowany lub nie ma żadnego transformatora, który automatycznie zaimportował React. –