2016-06-03 14 views
1

Wie kann ich react-Komponenten, die in jsx-Dateien definiert sind, in einer index.js-Datei bündeln?Exportieren von jsx-Komponenten in index.js-Dateien

In einer Weise, dass die Komponenten von import module from "/module"; let C = module.Component; zugegriffen werden können.

mit:

/module 
    index.js 
    Component.jsx 

Antwort

1
export Component from "./Component" 

Sie sollten nicht exportieren Standard für Ihren Anwendungsfall verwenden. Es gibt nur einen Standardexport pro Modul. Dieser Wert ist als "exportierter Hauptwert" zu betrachten, da er am einfachsten zu importieren ist. Siehe https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export für weitere Einzelheiten

+0

Vielen Dank, aber das ist nicht mein Punkt hier, das Problem ist, dass die index.js mit den jsx-Dateien inkompatibel zu sein scheint. – dominik

+0

funktioniert der Code, wenn Sie Ihre Import- und Exportanweisung durch meinen Code ersetzen? – alpha

+0

Sorry, nein, der Fehler tritt immer noch auf:/ – dominik

2

Um die Komponente als Standardexport erneut zu exportieren:

export { default } from './Component'; 

Um die Komponente als benannte Export erneut zu exportieren:

export { default as NamedComponent } from './Component'; 

Sie bevorzugen sollen den Export als Standard von index.js, da es wahrscheinlich der einzige Export aus dem Index sein wird.

Ihre Komponente Import wird wie folgt aussehen:

import Component from './module'; 

oder diese, wenn Sie einen Namen Export verwenden:

import { NamedComponent } from './module'; 

Angenommen, Sie webpack verwenden Ihre Dateien zu bündeln, um sicherzustellen, Ihre Importe können './Component' anstelle von './Component.jsx' verwenden, einschließlich .jsx als Erweiterung in Ihrer resolve Eigenschaft in webpack.config.js:

module.exports = { 
    resolve: { 
    extensions: ['.js', '.jsx'], 
    }, 
};