Этот компонент работает:
export class Template extends React.Component {
render() {
return (
<div> component </div>
);
}
};
export default Template;
Если я удалю последнюю строку, это не сработает.
Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
Наверное, я не понимаю что-то в синтаксисе es6. Разве не нужно экспортировать без знака «по умолчанию»?
javascript
ecmascript-6
stkvtflw
источник
источник
export default class Template extends React.Component {
Ответы:
Экспорт без
default
средств означает «именной экспорт». Вы можете иметь несколько именованных экспортов в одном файле. Так что, если вы сделаете это,Затем вы должны импортировать эти экспорты, используя их точные имена. Таким образом, чтобы использовать эти компоненты в другом файле, вы должны сделать,
В качестве альтернативы, если вы экспортируете как
default
экспорт, как это,Затем в другом файле вы импортируете экспорт по умолчанию, не используя
{}
, как это,Для каждого файла может быть только один экспорт по умолчанию. В React принято экспортировать один компонент из файла и экспортировать его как экспорт по умолчанию.
Вы можете переименовать экспорт по умолчанию при импорте,
И вы можете импортировать по умолчанию и именованные экспорты одновременно,
источник
import React, {Component} from 'react';
.import RaisedButton from 'material-ui/RaisedButton';
вместоimport {RaisedButton} from 'material-ui';
Это позволит сделать процесс сборки быстрее и ваш выход строить меньше.import Binding from 'module/Binding'
быть более эффективным, чемimport {Binding} from 'module'
?Добавить {} при импорте и экспорте:
export { ... };
|import { ... } from './Template';
экспорт →
import { ... } from './Template'
экспорт по умолчанию →
import ... from './Template'
Вот рабочий пример:
Sand Рабочая песочница для игры: https://codesandbox.io/s/export-import-example-react-jl839?fontsize=14&hidenavigation=1&theme=dark
источник