2016-05-16 16 views
5

Ho l'app di Redux con React Router (basata su https://github.com/este/este).Rifiuta l'azione in sospeso del percorso precedente alla transizione della pagina nell'app Redux

All'interno di un percorso, possono essere presenti più di 1 chiamate AJAX (attivate da redux-promise-middleware & redux-thunk). Quando la pagina cambia (tramite react-router), desidero rifiutare tutta la restante _SUCESS o _FAILED richiamata actions attivata dall'itinerario precedente.

Qual è il modo migliore per farlo?

risposta

0

Suggerirei di rendere i dati recuperabili. Significa che nell'azione in cui viene avviato il recupero, aggiungi un contesto di pagina. Quando il riduttore ottiene i dati, può salvarli per quel contesto di pagina o possono buttarli via se la posizione non è uguale al browser (il che significa che l'utente si è allontanato). Se mantieni i dati per le diverse pagine/contesti hai anche il bonus di questi pronti se l'utente ritorna (se è qualcosa che vorresti).

  1. Sei in url "/ pageX". Si avvia il recupero dei dati e l'azione si assicura che il contesto della pagina venga memorizzato per quando l'azione SUCCESS deve essere inviata. Quando il riduttore gestisce l'azione memorizza i dati in store.context["/pageX"].data (o simile). Nota: è qui che si può anche gettare via (respingere) nel caso in cui la posizione corrente non sia la stessa dei dati ricevuti.

  2. L'interfaccia utente dovrebbe sapere come chiedere/utilizzare i dati dal contesto che corrisponde solo alla posizione.

Si potrebbe anche prendere in considerazione il tracciamento della posizione su browser nello stato per l'applicazione ...

Problemi correlati