Ich benutze Babel/ES6 mit Webpack. Ich importiere die gleiche "Actions" -Datei - die eine Reihe von Funktionen exportiert - an zwei verschiedenen Orten. An einer Stelle gibt es ein Modul, das andere undefined
:Wie kann eine importierte Funktion in ES6 in einer Datei und nicht in einer anderen Datei definiert werden?
actions.js
export function test() { ... }
export function test2() { ... }
App.js
import actions from './actions'
class App extends React.Component { ... }
console.log(actions); //<-------- Object{test:function,test2:function)
export default connect((state) => { ... },actions)(App);
bearbeiten der Grund App.js gearbeitet war, weil es tatsächlich unter Verwendung import * as actions
als unten verstaut, habe ich gerade falsch in dem Beispiel
getapt NestedComponent.js
import actions from './actions'
class NestedComponent extends OtherComponent { ... }
console.log(actions); //<-------- logs undefined
export default connect((state) => { ... },actions)(NestedComponent);
Ist dies im Zusammenhang mit der Reihenfolge, in der die Module webpack/Dateien definiert?
Sind Sie sicher, dass Aktionen im selben Verzeichnis wie NestedComponent vorhanden sind? –
nein es ist tatsächlich in einem verschachtelten Ordner in meinem Setup, aber ich habe den Pfad doppelt überprüft, und sowohl der Editor und der Babel-Compiler beschweren sich, wenn ich es ändere (was es gut war) – Flion
@Felix King ist richtig. Da Sie keine Standardexporte in der Aktionsdatei verwenden, können Sie nichts davon importieren, es sei denn, Sie haben einen benannten Import verwendet. –