Este componente funciona:
export class Template extends React.Component {
render() {
return (
<div> component </div>
);
}
};
export default Template;
Si elimino la última fila, no funciona.
Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
Supongo que no entiendo algo en la sintaxis es6. ¿No es necesario exportar sin signo "predeterminado"?
javascript
ecmascript-6
stkvtflw
fuente
fuente
export default class Template extends React.Component {
Respuestas:
Exportar sin
default
medios es una "exportación con nombre". Puede tener múltiples exportaciones con nombre en un solo archivo. Entonces si haces esto,entonces debe importar estas exportaciones utilizando sus nombres exactos. Entonces, para usar estos componentes en otro archivo que tendría que hacer,
Alternativamente, si exporta como la
default
exportación de esta manera,Luego, en otro archivo, importa la exportación predeterminada sin utilizar
{}
, como este,Solo puede haber una exportación predeterminada por archivo. En React es una convención exportar un componente de un archivo, y exportarlo es la exportación predeterminada.
Puede cambiar el nombre de la exportación predeterminada a medida que la importa,
Y puede importar exportaciones predeterminadas y con nombre al mismo tiempo,
fuente
import React, {Component} from 'react';
.import RaisedButton from 'material-ui/RaisedButton';
lugar deimport {RaisedButton} from 'material-ui';
Esto hará que su proceso de compilación sea más rápido y su salida de compilación sea más pequeña.import Binding from 'module/Binding'
ser más eficiente queimport {Binding} from 'module'
?Agregue {} al importar y exportar:
export { ... };
|import { ... } from './Template';
exportar →
import { ... } from './Template'
exportación predeterminada →
import ... from './Template'
Aquí hay un ejemplo de trabajo:
⚡️ Sandbox de trabajo para jugar: https://codesandbox.io/s/export-import-example-react-jl839?fontsize=14&hidenavigation=1&theme=dark
fuente