Me pregunto cuál sería el mejor patrón para suscribirse a los cambios en el historial del navegador con la última versión de react-router
. Estaba leyendo la documentación actual, pero parece que la única opción que se menciona allí es recuperar explícitamente los accesorios pasados por el contenedor <Match/>
a la función de render
o al component
. Esta solución también se describe aquí:
https://stackoverflow.com/a/41006114/2817257
Pero, ¿qué pasa si me gustaría obtener parámetros de ruta más profundos en el árbol de componentes de una manera limpia?
Lo que estoy pensando es crear un componente de contenedor que recupere el router
del contexto y se suscriba a los cambios de ubicación. Sin embargo, con la versión actual 4.0.0-alpha.6
, aunque el objeto de router
ya está en el contexto, solo contiene los siguientes métodos:
que no son muy prometedores, porque parece que el router
no está exponiendo el objeto de history
en absoluto. ¿Tal vez hay algún otro objeto que se agrega al contexto que podría ser útil?
Los documentos react-router
están inactivos en el cajero automático, pero en v3 podría pasar una función onUpdate
como apoyo al componente del Router
para escuchar los cambios de estado del enrutador.
Otra opción es importar browserHistory
, que se implementa con history
(nuevamente, el conocimiento de v3 ya que los documentos de v4 están inactivos) y suscribirse a los cambios de historial con listen
, como este
import { browserHistory } from 'react-router' browserHistory.listen((location, action) => { // do whatever you need here })