support ecmascript javascript ecmascript-6

javascript - ecmascript - ¿Por qué el componente es6 react funciona solo con "exportación predeterminada"?



ecmascript 6 support (1)

Exportar sin default significa que es una "exportación con nombre". Puede tener múltiples exportaciones con nombre en un solo archivo. Entonces si haces esto,

class Template {} class AnotherTemplate {} export { Template, AnotherTemplate }

entonces debe importar estas exportaciones utilizando sus nombres exactos. Entonces, para usar estos componentes en otro archivo que tendría que hacer,

import {Template, AnotherTemplate} from ''./components/templates''

Alternativamente, si exporta como la exportación default esta manera,

export default class Template {}

Luego, en otro archivo, importa la exportación predeterminada sin usar el {} , como este,

import Template from ''./components/templates''

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,

import TheTemplate from ''./components/templates''

Y puede importar exportaciones predeterminadas y con nombre al mismo tiempo,

import Template,{AnotherTemplate} from ''./components/templates''

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"?