Saya memiliki file test_stuff.js yang saya jalankan npm test
Ini terlihat seperti ini:
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));
});
});
});
Sayangnya, saya mendapatkan error tersebut
/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)
Apa artinya? Saya berhasil mengimpor React dari 'react', jadi mengapa React tidak ditentukan? Ini adalah _react.React, apapun artinya ...
javascript
reactjs
npm
react-jsx
Beberapa pria
sumber
sumber
import * as React from "react"
import React from 'react'
tidak valid karena React bukan ekspor default tetapi berfungsi karena menggunakan ES6 dalam hubungannya dengan babel. Mungkin konfigurasi babel Anda berbeda sehingga memaksa Anda untuk menggunakan sintaks valid yang benar yaituimport * as React from 'react'
. Untuk info lebih lanjut: github.com/DefinitelyTyped/DefinitelyTyped/issues/5128babel-preset-expo
github.com/expo/babel-preset-expo/blob/master/index.jsesModuleInterop
di tsconfig. Tsconfig harus diterapkan ke file pengujian (centanginclude
danfiles
).Ini berhasil untuk saya. Saya tidak yakin mengapa itu memperbaiki versi saya dari masalah ini. Jadi jika Anda adalah seseorang yang menemukan masalah ini dan Anda menggunakan create-react-app sebagai boilerplate awal Anda, cara mengimpor React ini akan berhasil. (mulai Oktober 18, lol)
sumber
import { React, useState } from 'react'
;'react'
tidak mengeksporReact
sebagai non default per sé. Namun ituexport useState
,,export Component
dll.Bagi mereka yang bekerja ReactJS dengan TypeScript.
sumber
Kesalahan ini terjadi pada saya karena kecerobohan. Itu sebenarnya
Tanda kurung untuk ekspor bernama seperti ini:
sumber
Ubah: impor {React} dari 'react' ke import React dari 'react' Karena React adalah ekspor default dan Anda tidak memerlukan tanda kurung kurawal untuk ekspor default.
sumber
Jika seandainya Anda perlu mengimpor beberapa kelas dari 'react', Anda dapat memiliki alias untuk mereka kecuali React. Sesuatu seperti,
sumber
React
diekspor secara default dalam modul itu, tidak perlu {}.sumber