¿Cómo exportar un objeto importado en ES6?

Resuelto Yao Zhao asked hace 8 años • 0 respuestas

El caso de uso es simple: solo quiero exportar un objeto con el nombre tal como se importó.

Por ejemplo:

import React from 'react';
export React;

Pero esto no funciona. Tengo que escribir:

import React from 'react';
export const React = React;

Pero esto es extraño. ¿Cuál es la forma correcta de hacer esto?

ACTUALIZADO :

Gracias por la ayuda y las referencias. He resuelto mi problema con muchas pistas. Me gustaría compartir algunos casos comunes para mí y las soluciones.

exportar importaciones

import d, {obj} from '...';

export {obj, d};
export {obj as name1, d as name2};

reexportar todas las importaciones nombradas

export * from '...';
export * as name1 from '...';

reexportar algunas importaciones nombradas

export {a, b as name1} from '...';

reexportar importación predeterminada como exportación predeterminada

export {default} from '...';

reexportar la importación predeterminada como exportación nombrada

export {default as name1} from '...';
Yao Zhao avatar May 13 '16 09:05 Yao Zhao
Aceptado

A menudo hago lo siguiente en archivos index.js que componen varios archivos:

export {default as SomeClass} from './SomeClass';
export {someFunction} from './utils';
export {default as React} from 'react';

Esta entrada de blog proporciona algunos buenos ejemplos adicionales.

Nota IMPORTANTE

Debe tener en cuenta esta regla eslint al acceder a estas importaciones exportadas. Básicamente, en otro archivo, no deberías:

import SomeClassModule from 'SomeClass/index.js';
SomeClassModule.someFunction(); // Oops, error

Usted debe hacer esto:

import SomeClassModule, {someFunction} from 'SomeClass/index.js';
someFunction(); // Ok
Eric H. avatar Mar 09 '2017 16:03 Eric H.

Podrías exportar un archivo importado con dicha estructura.

import First from './First'
import Second from './Second'
/..../
export { First, Second }
Igor Dolzhenkov avatar May 18 '2017 13:05 Igor Dolzhenkov