Komponen ini berfungsi:
export class Template extends React.Component {
render() {
return (
<div> component </div>
);
}
};
export default Template;
Jika saya menghapus baris terakhir, itu tidak berfungsi.
Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
Saya kira, saya tidak mengerti sesuatu dalam sintaks ES6. Bukankah harus mengekspor tanpa tanda "default"?
javascript
ecmascript-6
stkvtflw
sumber
sumber
export default class Template extends React.Component {
Jawaban:
Mengekspor tanpa
default
berarti itu adalah "ekspor bernama". Anda dapat memiliki beberapa ekspor bernama dalam satu file. Jadi jika Anda melakukan ini,maka Anda harus mengimpor ekspor ini menggunakan nama persisnya. Jadi untuk menggunakan komponen ini di file lain yang harus Anda lakukan,
Atau jika Anda mengekspor sebagai
default
ekspor seperti ini,Kemudian di file lain Anda mengimpor ekspor default tanpa menggunakan
{}
, seperti ini,Hanya ada satu ekspor standar per file. Dalam Bereaksi itu adalah konvensi untuk mengekspor satu komponen dari file, dan untuk mengekspornya adalah sebagai ekspor default.
Anda bebas untuk mengubah nama ekspor default saat Anda mengimpornya,
Dan Anda dapat mengimpor ekspor default dan bernama pada saat yang sama,
sumber
import React, {Component} from 'react';
.import RaisedButton from 'material-ui/RaisedButton';
sebagai gantiimport {RaisedButton} from 'material-ui';
ini akan membuat proses build Anda lebih cepat dan output build Anda lebih kecil.import Binding from 'module/Binding'
lebih efisienimport {Binding} from 'module'
?Tambahkan {} saat mengimpor dan mengekspor:
export { ... };
|import { ... } from './Template';
ekspor →
import { ... } from './Template'
ekspor default →
import ... from './Template'
Berikut ini contoh kerjanya:
⚡️Bekerja kotak pasir untuk bermain-main: https://codesandbox.io/s/export-import-example-react-jl839?fontsize=14&hidenavigation=1&theme=dark
sumber