Alors, de mon côté, un console.log(props) me renvoit un objet vide. J'ai un peu galérer à trouver une solution mais avec la doc de React Router (qui décidemment est super bien faite !) j'ai pu trouver une solution.
Du coup j'ai utilisé le hook useParams de react-routeur qui lui me permet d'utiliser la fonction useParams() qui avec props en paramètre me renvoit bien l'ID pour le coup. C'est finalement plus simple aussi.
Voici le code de mon composant Article :
//Lib
import React from "react";
import { useParams } from "react-router-dom"
function Article(props) {
let getId = useParams(props);
return <h1>Ma page Article ({getId.id})</h1>
}
export default Article;
Je ne sais pas si c'est dû aussi à la montée de version v5 > v6 Louis Nicolas, qu'en penses-tu ? Merci de ton retour :)
Je confirme le console.log(props) est vide...
Pour ceux qui veulent faire leurs propre recherches je vous invite à consulter les docs suivants:
- Chapitre "Reading URL Parameters" => Reading URL Parameters
- Chapitre "Advantage of <Route element/>"=> Upgrading from V5
Merci Raven et bon courage à tous.
Si comme moi vous galerer vraiment a adapter a la v6 de react pour suivre le cours je vous propose d'utiliser ces commandes sur votre terminal pour utiliser l'ancienne version de react
1. Désinstallez la version actuelle de react-router-dom
npm uninstall -s react-router-dom
//Ou
npm un -s react-router-dom
2. Installer une version v5 spécifique
npm install -s react-router-dom@5.3.0
//Ou
npm i -s react-router-dom@5.3.0
voir ici :
https://upmostly.com/tutorials/how-to-check-my-react-version-and-update-it#:~:text=To%20check%20which%20React%20version,of%20those%20should%20be%20React
Bonjour a tous !
Grosse galère pour ma part avec la version 6.8.2 de react-routeur.dom. Serait-il possible de m'aider svp ? Voici le problème que je rencontre.
1) La page Web 'Article' ne s'affiche pas. Tout le reste fonctionne correctement.
2) La console me renvoit les 2 messages d'erreur suivants The above error occurred in the <Article> component:
overrideMethod | @ | react_devtools_backend.js:2655 | |
logCapturedError | @ | react-dom.development.js:18687 | |
update.callback | @ | react-dom.development.js:18720 | |
callCallback | @ | react-dom.development.js:13923 | |
commitUpdateQueue | @ | react-dom.development.js:13944 | |
commitLayoutEffectOnFiber | @ | react-dom.development.js:23391 | |
commitLayoutMountEffects_complete | @ | react-dom.development.js:24688 | |
commitLayoutEffects_begin | @ | react-dom.development.js:24674 | |
commitLayoutEffects | @ | react-dom.development.js:24612 | |
commitRootImpl | @ | react-dom.development.js:26823 | |
commitRoot | @ | react-dom.development.js:26682 | |
performSyncWorkOnRoot | @ | react-dom.development.js:26117 | |
flushSyncCallbacks | @ | react-dom.development.js:12042 | |
(anonymous) | @ | react-dom.development.js:25651 |
et ```Warning: React does not recognize the `activeclassName` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `activeclassname` instead. If you accidentally passed it from a parent component, remove it from the DOM element.
at a
at LinkWithRef (http://localhost:3000/static/js/bundle.js:38255:7)
at NavLinkWithRef (http://localhost:3000/static/js/bundle.js:38323:23)
at li
at NavigationItem (http://localhost:3000/static/js/bundle.js:447:20)
at ul
at Navigation
at nav
at div
at header
at Header
at Layout (http://localhost:3000/static/js/bundle.js:751:21)
at div
at App
at Router (http://localhost:3000/static/js/bundle.js:39964:15)
at BrowserRouter (http://localhost:3000/static/js/bundle.js:38161:5)
printWarning @ react-dom.development.js:86
error @ react-dom.development.js:60
validateProperty$1 @ react-dom.development.js:3757
warnUnknownProperties @ react-dom.development.js:3803
validateProperties$2 @ react-dom.development.js:3827
validatePropertiesInDevelopment @ react-dom.development.js:9541
setInitialProperties @ react-dom.development.js:9830
finalizeInitialChildren @ react-dom.development.js:10950
completeWork @ react-dom.development.js:22193
completeUnitOfWork @ react-dom.development.js:26596
performUnitOfWork @ react-dom.development.js:26568
workLoopSync @ react-dom.development.js:26466
renderRootSync @ react-dom.development.js:26434
performConcurrentWorkOnRoot @ react-dom.development.js:25738
workLoop @ scheduler.development.js:266
flushWork @ scheduler.development.js:239
performWorkUntilDeadline @ scheduler.development.js:533```
en relation avec 'NavigationItem.js' // Librairies
, 'Navigation.js' // Librairies
et 'Article.js' import React from 'react';