Come ottengo il percorso corrente e la query della posizione corrente con redux-router in riduttore. Sono in grado di ottenere facilmente il pathname all'interno del componente con mapStateToProps, ma voglio accedere al percorso corrente in reducer. Sto usando redux-router 1.0.0-beta7, react-router 1.0.3.Come accedere alla posizione corrente nel riduttore (redux-router)?
6
A
risposta
12
.way - pass percorso con particolare azione attraverso redux-thunk e getState()
const someAction = data =>(dispatch,getState)=>{
dispatch({
type:'SOME_ACTION',
pathname:getState().router.pathname
})
}
.way - scrivere middleware e passare percorso con ogni azione
///write middleware
export const attachPathNameToAction = store => next => action=>{
action.pathname = store.getState().router.pathname //<-----passing pathname
next(action)
};
///then in reducer you allways can get pathname
case 'SOME_ACTION':
let pathname = action.pathname \\ <-------------
return {...state, action.data}
.way - pass percorso da this.props.location.pathname del componente
//in component
let {pathname}= this.props.location;
this.props.someAction(data, pathname);
//workflow: component -> action -> reducer
+2
La soluzione middleware è fantastica! Grazie per quello. Mi chiedo davvero perché non hanno un plugin per questo. – Tomer
+0
Si noti che '... .router.location.pathname', non' ... .router.pathname'. –
Problemi correlati
- 1. Come accedere alla sessione nel file .ashx?
- 2. Come accedere correttamente alla proprietà PrivateBinPath dell'appDomain corrente?
- 3. Come trovare l'elemento più vicino alla posizione corrente con jQuery
- 4. Come posso tornare alla posizione corrente dell'hash utilizzando Passport.js?
- 5. come accedere alla sessione nel modello asp.net mvc
- 6. Impossibile accedere alla classe interna nel bean
- 7. Angolare2: gestione evento del mouse (movimento relativo alla posizione corrente)
- 8. Zoom per adattarsi alla posizione corrente e annotazione sulla mappa
- 9. Swift - giorno della settimana alla posizione corrente currentCalendar()
- 10. Accesso alla posizione corrente di UIView durante l'animazione
- 11. Redux - C'è un modo per accedere all'albero del negozio nel riduttore?
- 12. modo corretto per accedere alla configurazione dell'applicazione corrente
- 13. JQuery - "Selettore" per la posizione corrente nel documento
- 14. Come scrivere nel collegamento del corpo 'mailto' alla pagina corrente
- 15. Come tornare alla pagina corrente da Frame nel webdriver selenio
- 16. Come accedere alla variabile di sessione nel controller
- 17. Redux - Come aggiungere una voce all'array nel riduttore
- 18. Come accedere modulo corrente in Elixir
- 19. ASP .net posizione fisica corrente
- 20. Mostra la posizione corrente del cursore nel selenio
- 21. posizione corrente gps android
- 22. posizione corrente nella Simulator
- 23. Accesso ad altre parti di stato nel riduttore di Redux
- 24. ipython: accesso alla figura corrente()
- 25. come ottenere la posizione corrente in FragmentPagerAdapter?
- 26. come mostrare la posizione corrente su MKMapView
- 27. GPS Android ottiene posizione corrente
- 28. Pulsante posizione corrente su ios MKMapView
- 29. Come accedere alla cache dei modelli? - Django
- 30. Come accedere alla finestra $ in un Provider?
forse si può passare path in riduttore attraverso l'azione Creater? –
Perché dovresti duplicare la "fonte della verità" del percorso attuale? Se hai bisogno di accedere al percorso corrente, basta prenderlo da "oggetti di scena" poiché "router" viene automaticamente passato. Il router è la fonte della verità per la posizione del percorso, non è necessario duplicare questo in modo riduttivo. Se hai bisogno di ascoltarlo dall'autore Redux, guarda questo: https://egghead.io/lessons/javascript-redux-filtering-redux-state-with-react-router-params – lux
ecco come [redux-router] (https://github.com/acdlite/redux-router#differences-with-react-router-redux) funziona –