2016-07-07 16 views
5

È possibile?Aggiungi enhancer a redux store dopo createStore()

Sto utilizzando lo store redux in un ambiente IoC e voglio aggiungere il middleware allo store dopo che è stato creato.

es .:

class MyApp { 
    store = createStore(...); 
} 

let app = new MyApp(); 

// later on 
import thunk from 'redux-thunk'; 
app.store.addEnhancer(thunk); 
+0

Sarei interessato al motivo per cui è necessario? L'aggiunta del middleware in un secondo momento potrebbe rendere il negozio e gli aggiornamenti meno prevedibili. Qual è il tuo caso d'uso? –

+0

Questo è fatto per un approccio diverso. 'redux' è top-down, l'applicazione determina quale modulo utilizzare. Quello su cui sto lavorando è basato su IoC/plugin, quindi l'intera logica è decentralizzata. Ecco perché ho bisogno di farlo. – unional

risposta

2

ho creato una funzione per fare questo. Se redux pensa che questo sia prezioso, posso fare un PR.

Questo è un codice su misura per il mio modulo. L'effettiva aggiunta a PR sarà un po 'diversa.

addMiddleware(middleware: Middleware) { 
    const middlewareAPI: MiddlewareAPI<any> = { 
    getState: this.getState, 
    dispatch: (action) => this.dispatch(action) 
    }; 

    this.dispatch = compose(middleware(middlewareAPI))(this.dispatch); 
} 
Problemi correlati