¿Cómo podemos pasar el parámetro con this.props.history.push('/page')React-Router v4?
.then(response => {
var r = this;
if (response.status >= 200 && response.status < 300) {
r.props.history.push('/template');
});
reactjs
react-router
IshanGarg
fuente
fuente

Routedebe tener acceso athis.props.location,this.props.history, etc. Creo que no es necesario utilizarrefmás con v4. Intenta hacerlothis.props.history.push('/template');propsal componente que coincide con la ruta? Creo que este hilo de GitHub aborda su preocupación.Respuestas:
En primer lugar, no necesita hacer
var r = this;esto enif statementrefiere al contexto de la devolución de llamada en sí, que como está utilizando la función de flecha se refiere al contexto del componente Reaccionar.Según los documentos:
Entonces, mientras navegas, puedes pasar accesorios al objeto de historia como
o de manera similar para el
Linkcomponente o elRedirectcomponentey luego en el componente que se representa con la
/templateruta, puede acceder a los accesorios pasados comoTambién tenga en cuenta que, al usar el historial o los objetos de ubicación de accesorios, debe conectar el componente
withRouter.Según los documentos:
fuente
this.props.history.push('/template',response.data)no funciona. Según los documentos depush(path, [state]), ¿no crees que debería funcionar?puedes usar,
this.props.history.push("/template", { ...response })othis.props.history.push("/template", { response: response })entonces puede acceder a los datos analizados desde el
/templatecomponente siguiendo el código,const state = this.props.location.stateLeer más sobre React Session History Management
fuente
Para las versiones anteriores :
Y obtenga los datos en el componente relacionado al igual que a continuación:
Para las versiones más nuevas , la forma anterior funciona bien, pero hay una nueva forma:
Y obtenga los datos en el componente relacionado al igual que a continuación:
Sugerencia : el
statenombre de la clave se usó en las versiones anteriores y para las versiones más nuevas, puede usar su nombre personalizado para pasar datos y usar elstatenombre no es esencial.fuente
Extender la solución (sugerida por Shubham Khatri) para usar con ganchos React (16.8 en adelante):
Pasando parámetros con historial de empuje:
Accediendo al parámetro pasado usando useLocation desde 'react-router-dom':
fuente
Si necesita pasar parámetros de URL
hay una gran explicación de publicación de Tyler McGinnis en su sitio, Enlace a la publicación
Aquí hay ejemplos de código:
en el componente history.push:
this.props.history.push(`/home:${this.state.userID}`)en el componente del enrutador define la ruta:
<Route path='/home:myKey' component={Home} />en el componente de inicio:
fuente
No es necesario usar con Router. Esto funciona para mi:
En tu página principal,
Luego, en Componente A o Componente B puede acceder
objeto, incluido el método this.props.history.push.
fuente
withRouterporque envolviste tu componenteBrowserRouter, que funciona igual.propsa cada componente que incluye elhistoryaccesorio.Para usar React 16.8+ (con ganchos) puede usar de esta manera
Fuente aquí para leer más https://reacttraining.com/react-router/web/example/auth-workflow
fuente
Agregue información para obtener parámetros de consulta.
Para obtener más información sobre URLSearchParams, consulte este enlace URLSearchParams
fuente