From 94440dd2501cfce5e39a023232d98598dc75ea73 Mon Sep 17 00:00:00 2001
From: Jean-Christophe <>
Date: Thu, 25 Jan 2024 13:30:43 +0100
Subject: [PATCH] useEffect et nettoyage (bis)
---
README.md | 5 +++--
src/components/person.component.jsx | 5 ++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 8eda85b..95040d5 100644
--- a/README.md
+++ b/README.md
@@ -56,10 +56,11 @@ 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`
+* `v5.8` : mise en oeuvre de la fonction de nettoyage du `useEffect`
+ voir `/src/components/person.component.jsx`
+* `v5.9` : mise en oeuvre de la fonction de nettoyage du `useEffect`, appel à chaque exécution du hook
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 396f984..5ff4dcd 100644
--- a/src/components/person.component.jsx
+++ b/src/components/person.component.jsx
@@ -7,8 +7,7 @@ const Person = ( { name = 'Anonymous', age, started, delay } ) => {
const [ currentAge, setCurrentAge ] = useState(age);
const timer = useRef( undefined );
-useEffect( () => {
- clearInterval( timer.current );
+useEffect( () => {
if (started) {
timer.current = setInterval( () => {
setCurrentAge( previousCurrentAge => previousCurrentAge + 1 );
@@ -16,7 +15,7 @@ useEffect( () => {
}, delay);
}
return () => {
- console.log('cleanup');
+ console.log(`cleanup ${delay}`);
clearInterval( timer.current );
}
}, [started, delay] );
--
GitLab