From 28e7645b7eefa6b9472fb73dc6075c8c4f06aa39 Mon Sep 17 00:00:00 2001 From: Jean-Christophe <> Date: Thu, 25 Jan 2024 09:16:10 +0100 Subject: [PATCH] =?UTF-8?q?useEffect=20hook=20=C3=A0=20la=20cr=C3=A9ation?= =?UTF-8?q?=20du=20composant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- src/components/person.component.jsx | 8 +++++++- src/components/personListing.component.jsx | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 60abf01..356a1ef 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ où `tag` peut prendre comme valeur : * `v5.3` : modification et état courant : utilisation d'une fonction en argument de `setOn` pour modifier l'état à partir de la valeur précédente 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.jsx` + voir `/src/components/personListing.component.jsx` ainsi que `/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 10ffabc..079ef8f 100644 --- a/src/components/person.component.jsx +++ b/src/components/person.component.jsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import { useState, useEffect } from 'react'; // import stysheet defining style specific to this component import '../assets/style/person.css'; @@ -11,6 +11,12 @@ const Person = ( { name = 'Anonymous', age, started, delay } ) => { const [ currentAge, setCurrentAge ] = useState(age); + useEffect( () => { + if (started) { + setInterval( () => setCurrentAge( previousCurrentAge => previousCurrentAge + 1 ), delay); + } + }, []); + return ( <div className="person">Here is : <div>name : <span>{ name }</span> </div> diff --git a/src/components/personListing.component.jsx b/src/components/personListing.component.jsx index 724d612..74b6c02 100644 --- a/src/components/personListing.component.jsx +++ b/src/components/personListing.component.jsx @@ -16,7 +16,7 @@ const PersonListing = props => { useEffect( () => { console.log('component did mount'); const fetchData = async () => { - const data = await mockFetch('http://source.of.data/persons',1000); + const data = await mockFetch('http://source.of.data/persons'); setPersons( data ); } fetchData(); -- GitLab