Este componente funciona:
export class Template extends React.Component {
render() {
return (
<div> component </div>
);
}
};
export default Template;
Se eu remover a última linha, ele não funcionará.
Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
Eu acho que não entendo algo na sintaxe es6. Não é necessário exportar sem o sinal "padrão"?
javascript
ecmascript-6
stkvtflw
fonte
fonte
export default class Template extends React.Component {
Respostas:
Exportar sem
default
significa que é uma "exportação nomeada". Você pode ter várias exportações nomeadas em um único arquivo. Então, se você fizer isso,você precisará importar essas exportações usando seus nomes exatos. Então, para usar esses componentes em outro arquivo que você teria que fazer,
Como alternativa, se você exportar como
default
exportação assim,Em outro arquivo, você importa a exportação padrão sem usar o
{}
, assim,Só pode haver uma exportação padrão por arquivo. No React, é uma convenção exportar um componente de um arquivo e exportá-lo como exportação padrão.
Você pode renomear a exportação padrão à medida que a importa,
E você pode importar exportações padrão e nomeadas ao mesmo tempo,
fonte
import React, {Component} from 'react';
.import RaisedButton from 'material-ui/RaisedButton';
vez deimport {RaisedButton} from 'material-ui';
Isso tornará seu processo de criação mais rápido e sua saída menor.import Binding from 'module/Binding'
ser mais eficiente do queimport {Binding} from 'module'
?Adicione {} ao importar e exportar:
export { ... };
|import { ... } from './Template';
exportar →
import { ... } from './Template'
padrão de exportação →
import ... from './Template'
Aqui está um exemplo de trabalho:
⚡️Trabalhando em sandbox para brincar: https://codesandbox.io/s/export-import-example-react-jl839?fontsize=14&hidenavigation=1&theme=dark
fonte