J'utilise React Router hooks for navigation useHistory
.
Naviguer: history.Push("/home", { update: true });
Chez moi: j'essaye d'obtenir des paramètres let {update} = useParams();
Mais update
est toujours indéfini. Quel est le problème avec ce code. Aucune suggestion ?
Le deuxième paramètre de la méthode history.Push()
est en fait connu sous le nom d'état d'emplacement,
history.Push(path, [state])
Comme indiqué sur le React-Router documentation , vous pouvez accéder à l'état en accédant aux accessoires location
. Dans votre cas, pour obtenir la valeur de update
,
this.props.location.update
Si vous utilisez React Hooks suivez cette méthode parce que this.props n'est disponible que dans React Class.
Composant un:
import React from 'react'
import { useHistory } from "react-router-dom";
const ComponentOne = () => {
const history = useHistory();
const handleSubmit = () => {
history.Push('/component-two',{params:'Hello World'})
}
return (
<div>
<button onClick={() => {handleSubmit()}}>Fire</button>
</div>
)
}
Deuxième composante:
import React from 'react'
import { useLocation } from "react-router-dom";
const ComponentTwo = () => {
const location = useLocation();
const myparam = location.state.params;
return (
<div>
<p>{myparam}</p>
</div>
)
}
C'est comme ça que tu peux passer
history.Push("/home", { update: true });
et accédez comme ceci s'il s'agit d'un composant sans état.
props.location.update;
si composant basé sur la classe.
this.props.location.update;