Tôi có một tập tin test_stuff.js mà tôi đang chạy với npm test
Phản ứng tập tin JSX đưa ra lỗi "Không thể đọc thuộc 'createElement' không xác định"
Nó khá nhiều trông như sau:
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));
});
});
});
Thật không may , Tôi gặp lỗi
/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)
Điều đó có nghĩa là gì? Tôi đang nhập React từ 'phản ứng' thành công, vậy tại sao React lại không được xác định? Đó là _react.React, điều đó có nghĩa là ...
Tôi không chắc tại sao lại nhưng đối với tôi, đó là 'import * như React từ" phản ứng "' – Clintm
Về mặt kỹ thuật, 'import React from 'react'' không hợp lệ vì React không phải là mặc định xuất khẩu nhưng nó hoạt động do sử dụng ES6 kết hợp với babel. Có lẽ cấu hình Babel của bạn khác nhau buộc bạn phải sử dụng đúng cú pháp hợp lệ, đó là 'import * như React từ 'react''. Để biết thêm thông tin: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/5128 – Kafo
Một điều quan trọng khác mà tôi quên đề cập đến là JSX yêu cầu React phải ở trong phạm vi hoạt động. Tuy nhiên, bạn không thực sự cần React bên cạnh Component và có thể xuất khẩu có tên khác. Có lẽ trong tương lai bạn sẽ không nhập React. – Kafo