Diese Komponente funktioniert:
export class Template extends React.Component {
render() {
return (
<div> component </div>
);
}
};
export default Template;
Wenn ich die letzte Zeile entferne, funktioniert es nicht.
Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
Ich glaube, ich verstehe etwas in der es6-Syntax nicht. Muss es nicht ohne Vorzeichen "Standard" exportieren?
javascript
ecmascript-6
stkvtflw
quelle
quelle
export default class Template extends React.Component {
Antworten:
Exportieren ohne
default
bedeutet, dass es sich um einen "benannten Export" handelt. Sie können mehrere benannte Exporte in einer einzigen Datei haben. Wenn Sie dies tun,dann müssen Sie diese Exporte mit ihren genauen Namen importieren. Um diese Komponenten in einer anderen Datei zu verwenden, müssten Sie Folgendes tun:
Alternativ, wenn Sie als
default
Export wie folgt exportieren,Dann importieren Sie in einer anderen Datei den Standardexport, ohne Folgendes zu verwenden
{}
:Es kann nur einen Standardexport pro Datei geben. In React ist es eine Konvention, eine Komponente aus einer Datei zu exportieren und sie als Standardexport zu exportieren.
Sie können den Standardexport beim Importieren umbenennen.
Außerdem können Sie Standard- und benannte Exporte gleichzeitig importieren.
quelle
import React, {Component} from 'react';
.import RaisedButton from 'material-ui/RaisedButton';
Stattdessenimport {RaisedButton} from 'material-ui';
wird Ihr Build-Prozess schneller und Ihre Build-Ausgabe kleiner.import Binding from 'module/Binding'
, um effizienter zu sein alsimport {Binding} from 'module'
?Fügen Sie beim Importieren und Exportieren {} hinzu:
export { ... };
|import { ... } from './Template';
exportieren →
import { ... } from './Template'
Standard exportieren →
import ... from './Template'
Hier ist ein Arbeitsbeispiel:
⚡️Arbeits-Sandbox zum Herumspielen: https://codesandbox.io/s/export-import-example-react-jl839?fontsize=14&hidenavigation=1&theme=dark
quelle