ES6 exportar / importar en el archivo de índice
Actualmente estoy usando ES6 en una aplicación React a través de webpack/babel. Estoy usando archivos de índice para reunir todos los componentes de un módulo y exportarlos. Desafortunadamente, eso se ve así:
import Comp1_ from './Comp1.jsx';
import Comp2_ from './Comp2.jsx';
import Comp3_ from './Comp3.jsx';
export const Comp1 = Comp1_;
export const Comp2 = Comp2_;
export const Comp3 = Comp3_;
Así que puedo importarlo desde otros lugares como este:
import { Comp1, Comp2, Comp3 } from './components';
Obviamente no es una solución muy agradable, así que me preguntaba, si había alguna otra manera. No me parece capaz de exportar el componente importado directamente.
4 answers
Puede volver a exportar fácilmente la importación predeterminada:
export {default as Comp1} from './Comp1.jsx';
export {default as Comp2} from './Comp2.jsx';
export {default as Comp3} from './Comp3.jsx';
También hay una propuesta para ES7 ES8 que te permitirá escribir export Comp1 from '…';
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-17 12:33:16
Además, tenga en cuenta que si necesita exportar múltiples funciones a la vez, como acciones, puede usar
export * from './XThingActions';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-15 02:43:22
Demasiado tarde, pero quiero compartir la forma en que lo resuelvo.
Que tiene model
archivo que tiene dos exportaciones con nombre:
export { Schema, Model };
Y tener controller
archivo que tiene la exportación por defecto:
export default Controller;
Expuse en el archivo index
de esta manera:
import { Schema, Model } from './model';
import Controller from './controller';
export { Schema, Model, Controller };
, Y suponiendo que quiero importar todos ellos:
import { Schema, Model, Controller } from '../../path/';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-30 18:22:24
Tuve un problema con export *
, devolvió undefined
cuando importaría la función/clase predeterminada ...
Así que, finalmente lo arreglé con export {default} from './MyClass'
y funcionó también
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-13 02:38:33