From 525935429b041b2565bf7cb45388da5c9ef7ade4 Mon Sep 17 00:00:00 2001 From: Jean-Christophe <> Date: Thu, 25 Jan 2024 11:31:17 +0100 Subject: [PATCH] =?UTF-8?q?useEffect=20et=20d=C3=A9pendances?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- src/components/person.component.jsx | 7 +++---- src/scripts/main.js | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 356a1ef..571224a 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,8 @@ où `tag` peut prendre comme valeur : voir `/src/components/star.jsx` (et `/src/components/person.component.jsx`) * `v5.5` : cycle de vie du composant : utilisation du hook `useEffect` pour agir au moment de la création du composant : juste après le premier rendu. voir `/src/components/personListing.component.jsx` ainsi que `/src/components/person.component.jsx` - +* `v 5.6` : utilisation des dépendances du hook `useEffect` pour déclencher son effet + 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 2c04880..776ad12 100644 --- a/src/components/person.component.jsx +++ b/src/components/person.component.jsx @@ -5,13 +5,12 @@ import '../assets/style/person.css'; const Person = ( { name = 'Anonymous', age, started, delay } ) => { const [ currentAge, setCurrentAge ] = useState(age); - - + useEffect( () => { if (started) { setInterval( () => setCurrentAge( previousCurrentAge => previousCurrentAge + 1 ), delay); - } - }, []); + + }, [started]); return ( <div className="person">Here is : diff --git a/src/scripts/main.js b/src/scripts/main.js index 3cddc9b..096baa8 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1,11 +1,12 @@ import { createRoot } from 'react-dom/client'; import PersonListingController from '../components/personListingController.component.jsx'; +import { StrictMode } from 'react'; const bootstrapReact = () => { const root = createRoot(document.getElementById('insertReactHere')); - const component = <PersonListingController />; + const component = <StrictMode><PersonListingController /></StrictMode>; root.render(component); } -- GitLab