Parece que no puedo encontrar cómo actualizar los parámetros de consulta con react-router sin usar <Link/>
. hashHistory.push(url)
no parece registrar parámetros de consulta, y no parece que pueda pasar un objeto de consulta ni nada como segundo argumento.
¿Cómo se cambia la URL de /shop/Clothes/dresses
a /shop/Clothes/dresses?color=blue
en react-router sin usar <Link>
?
¿Y es una onChange
función realmente la única forma de escuchar los cambios de consulta? ¿Por qué los cambios de consulta no se detectan y reaccionan automáticamente a la forma en que lo hacen los cambios de parámetros?
reactjs
react-router
claireablani
fuente
fuente
Respuestas:
Dentro del
push
método dehashHistory
, puede especificar sus parámetros de consulta. Por ejemplo,o
Puede consultar este repositorio para obtener ejemplos adicionales sobre el uso
history
fuente
router.push({ pathname: '/path', state: { color: 'blue', size: 10 }, });
Ejemplo usando el paquete react-router v4, redux-thunk y react-router-redux (5.0.0-alpha.6).
Cuando el usuario usa la función de búsqueda, quiero que pueda enviar un enlace de URL para la misma consulta a un colega.
fuente
react-router-redux
está obsoleto<Redirect>
etiqueta, enlace a la página de documentoswithReducer
HOC, lo que le dará elhistory
apoyo. Y luego puedes correrhistory.push({ search: querystring }
.react-router-redux
, puede usar loconnected-react-router
que no está en desuso.La respuesta de John es correcta. Cuando estoy tratando con parámetros, también necesito una
URLSearchParams
interfaz:También es posible que deba envolver su componente con un
withRouter
HOC, por ejemplo.export default withRouter(YourComponent);
.fuente
withRouter
es un HOC, no un decoradorfuente
Desde DimitriDushkin en GitHub :
o
fuente
El uso del módulo de cadena de consulta es el recomendado cuando necesita un módulo para analizar su cadena de consulta con facilidad.
Aquí, estoy redirigiendo a mi cliente desde el servidor Node.js después de la autenticación exitosa de Google-Passport, que está redirigiendo con el token como parámetro de consulta.
Lo estoy analizando con el módulo query-string, guardándolo y actualizando los parámetros de consulta en la URL con push de react-router-redux .
fuente
Prefiero que uses la siguiente función que es
ES6
estilo:fuente
También se puede escribir de esta manera
fuente