Discussions

React router v6 - useLocation et Link

Image

Vous ne pouvez pas procéder comme dans la video. Il faut utiliser useLocation() de React Router.

 

La syntaxe du Link dans routerv6 est la suivante :

<Link to={routes.AJOUTER} state={ {article: article} }>
        <button>Modifier</button>
</Link>

 

Dans votre composant Ajouter.js, importer useLocation() :

 

import { useNavigate, useLocation } from "react-router-dom";

 

Ensuite vous aurez accès au state en faisant :

 

const getState = useLocation(props)
console.log(getState.state.article)

 

Ou directement :

const getState = useLocation(props).state.article
2 réponses
Image
Louis-Nicolas Leuillet
Le 23/08/2022 à 17:33

Merci beaucoup, je m'occupe de faire la mise à jour en ce moment

Image
Alice BOULAY
Le 12/01/2023 à 08:35

De mon côté, console.log(props) me retournait un tableau vide. 
J'ai donc utilisé dans Ajouter.js :
const location = useLocation();
puis :
return (

<div className='container'>
{location.state && location.state.article ? (
<h1>Modifier</h1>
) : (
<h1>Ajouter</h1>
)}
{form}
</div>
);
Image
Inscrivez-vous ou connectez-vous pour participer à la discussion.

Informations

Créée le 23 août 2022 17:01
Dernière activité le 23 août 2022 17:01