Tôi đang chơi với React (@ 13.3) với gói babel và webpack.Phản ứng dự kiến sẽ có sẵn trên toàn cầu
Tôi có một thành phần được định nghĩa như thế này:
import BaseComponent from './BaseComponent';
export default class SomeComponent extends BaseComponent {
render() {
return (
<div>
<img src="http://placekitten.com/g/900/600"/>
</div>
);
}
}
Nhưng tôi nhận được lỗi sau:
Uncaught ReferenceError: React is not defined
Tôi hiểu các lỗi: bit JSX được biên dịch vào React.createElement(...)
nhưng React
isn' t trong phạm vi hiện tại vì nó không được nhập.
Câu hỏi của tôi là: Cách sạch sẽ để khắc phục sự cố này là gì? Tôi có phải bằng cách nào đó phơi bày React
trên toàn cầu với webpack không?
Giải pháp sử dụng:
Tôi đi theo @ salehen-rahman gợi ý.
Trong webpack.config.js tôi:
module: {
loaders: [{
test: /\.js$/,
exclude: /node_modules/,
loader: 'react-hot!babel?plugins[]=react-require'
}, {
test: /\.css$/,
loader: 'style!css!autoprefixer?browsers=last 2 versions'
}]
},
Tôi cũng cần thiết để sửa chữa các xét nghiệm của tôi, vì vậy tôi thêm này vào helper.js file:
require('babel-core/register')({
ignore: /node_modules/,
plugins: ['react-require'],
extensions: ['.js']
});
xét nghiệm của tôi sau đó được tung ra với lệnh sau đây:
mocha --require ./test/helper.js 'test/**/*.js'
Các bạn đã thử 'nhập khẩu Phản ứng từ 'phản ứng' ; '? –
nhập Phản ứng phải nằm trong BaseComponent. –
@JanakaStevens nó không quan trọng.Đoạn mã trên vẫn chưa được chạy, xem xét cách React không được nhập thủ công hoặc không có bất kỳ biến liên quan nào có thể tự động nhập Phản hồi. –