Sto usando babel/ES6 con il webpack. Sto importando lo stesso file 'actions' - che esporta un mazzo di funzioni - in due posti diversi. A un certo punto si ritorna un modulo, l'altro undefined
:Quando si utilizza ES6, in che modo una funzione importata può essere indefinita in un file e non in un altro?
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);
modificare la ragione App.js lavorato era perché era in realtà usando import * as actions
come suggerito sotto, l'ho appena riportato di nuovo sbagliato nell'esempio
NestedComponent.js
import actions from './actions'
class NestedComponent extends OtherComponent { ... }
console.log(actions); //<-------- logs undefined
export default connect((state) => { ... },actions)(NestedComponent);
È correlato all'ordine in cui webpack definisce i moduli/file?
Sei sicuro che le azioni siano presenti nella stessa directory di NestedComponent? –
no in realtà è in una cartella nidificata nella mia configurazione, ma ho ricontrollato il percorso, e sia l'editor che il compilatore babel si lamentano se lo cambio (il che significa che era buono) – Flion
@Felix King ha ragione. Dal momento che non si utilizzano le esportazioni predefinite nel file delle azioni, non si è in grado di importare nulla da esso, a meno che non si sia utilizzata un'importazione con nome. –