From c109c4a32a866be8360865ec1863d45bdd312968 Mon Sep 17 00:00:00 2001 From: Jean-Christophe <> Date: Thu, 25 Jan 2024 13:13:18 +0100 Subject: [PATCH] useEffect et nettoyage --- README.md | 2 ++ src/components/person.component.jsx | 6 +++++- src/scripts/main.js | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0e4d7d0..8eda85b 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,8 @@ où `tag` peut prendre comme valeur : voir `/src/components/person.component.jsx` * `v5.7` : utilisation du hook `useRef` et complément dépendances de `useEffect` voir `/src/components/person.component.jsx` +* `v5.8` :mise en oeuvre de la fonction de nettoyage du `useEffect` + voir `/src/components/person.component.jsx` Faire ```git checkout main``` pour revenir à la version finale. diff --git a/src/components/person.component.jsx b/src/components/person.component.jsx index 0a133e6..396f984 100644 --- a/src/components/person.component.jsx +++ b/src/components/person.component.jsx @@ -8,13 +8,17 @@ const [ currentAge, setCurrentAge ] = useState(age); const timer = useRef( undefined ); useEffect( () => { - clearInterval( timer.current ); + clearInterval( timer.current ); if (started) { timer.current = setInterval( () => { setCurrentAge( previousCurrentAge => previousCurrentAge + 1 ); console.log('timer is running'); }, delay); } + return () => { + console.log('cleanup'); + clearInterval( timer.current ); + } }, [started, delay] ); return ( diff --git a/src/scripts/main.js b/src/scripts/main.js index 096baa8..fb8fbd1 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -6,7 +6,7 @@ import { StrictMode } from 'react'; const bootstrapReact = () => { const root = createRoot(document.getElementById('insertReactHere')); - const component = <StrictMode><PersonListingController /></StrictMode>; + const component = <PersonListingController />; root.render(component); } -- GitLab