J'utilise actuellement ES6 dans une application React via webpack/babel. J'utilise des fichiers d'index pour rassembler tous les composants d'un module et les exporter. Malheureusement, cela ressemble à ceci:
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_;
Donc, je peux bien l’importer d’autres endroits comme celui-ci:
import { Comp1, Comp2, Comp3 } from './components';
De toute évidence, ce n’est pas une très bonne solution, alors je me demandais s’il existait un autre moyen. Je ne semble pas pouvoir exporter directement le composant importé.
Vous pouvez facilement réexporter l'importation par défaut:
export {default as Comp1} from './Comp1.jsx';
export {default as Comp2} from './Comp2.jsx';
export {default as Comp3} from './Comp3.jsx';
Il y a aussi un proposition de ES7 ES8 qui vous permettra d’écrire export Comp1 from '…';
.
En outre, n'oubliez pas que si vous avez besoin d'exporter plusieurs fonctions à la fois, comme des actions que vous pouvez utiliser
export * from './XThingActions';
Trop tard, mais je veux partager la façon dont je le résous.
Avoir le fichier model
qui a deux export nommés:
export { Schema, Model };
et ayant le fichier controller
qui a l'exportation par défaut:
export default Controller;
J'ai exposé dans le fichier index
de cette manière:
import { Schema, Model } from './model';
import Controller from './controller';
export { Schema, Model, Controller };
et en supposant que je veuille tous les importer:
import { Schema, Model, Controller } from '../../path/';
J'ai eu un problème avec export *
, il a retourné undefined
lorsque je voudrais importer la fonction/classe par défaut ...
Donc, je l'ai finalement corrigé avec export {default} from './MyClass'
et cela a également fonctionné