Idem que dans les sessions précédentes, je viens ici en aide aux étudiants pour vous éviter de chercher trop longtemps :)
1-
Pour passer un state vous ne devez pas le mettre dans l'objet to, vous devez le passer en paramètre de Link. Si vous le passez dans "to" comme dans la vidéo du cours vous n'aurez pas d'erreur de compilation mais le state ne remontera pas... . Voici comment j'ai fait :
import React from "react";
import { Link } from "react-router-dom";
function Home() {
return (
<>
<h1>Acceuil</h1>
<Link to="/articles/1">Article 1</Link>
<Link
to={{
pathname: "/articles/1",
//hash: '#projets',
//search: "?order=new",
}}
state={{ fromHome : true }}
style={{marginLeft:"15px"}}>Lien vers une ancre</Link>
</>
)
}
export default Home;
2-
Pour récupérer le state et vous en servir, vous ne pourrez pas le faire comme dans la vidéo de cours non plus. Il faudra passer par le hook useLocation (pensez à l'importer !) et ensuite vous ciblez le state. Voici comment j'ai procédé :
import React from "react";
import { useParams, useLocation } from "react-router-dom"
function Article(props) {
let getId = useParams(props);
let getState = useLocation(props);
console.log(getState);
return (
<>
<h1>Ma page Article ({getId.id})</h1>
{getState.state && getState.state.fromHome ? <p>Cliqué depuis accueil</p> : null}
</>
)
}
export default Article;