Skip to content
Snippets Groups Projects
Commit 28e7645b authored by Jean-Christophe's avatar Jean-Christophe
Browse files

useEffect hook à la création du composant

parent 181468d4
No related branches found
No related tags found
No related merge requests found
...@@ -51,7 +51,7 @@ où `tag` peut prendre comme valeur : ...@@ -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 * `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`) 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. * `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. Faire ```git checkout main``` pour revenir à la version finale.
......
import { useState } from 'react'; import { useState, useEffect } from 'react';
// import stysheet defining style specific to this component // import stysheet defining style specific to this component
import '../assets/style/person.css'; import '../assets/style/person.css';
...@@ -11,6 +11,12 @@ const Person = ( { name = 'Anonymous', age, started, delay } ) => { ...@@ -11,6 +11,12 @@ const Person = ( { name = 'Anonymous', age, started, delay } ) => {
const [ currentAge, setCurrentAge ] = useState(age); const [ currentAge, setCurrentAge ] = useState(age);
useEffect( () => {
if (started) {
setInterval( () => setCurrentAge( previousCurrentAge => previousCurrentAge + 1 ), delay);
}
}, []);
return ( return (
<div className="person">Here is : <div className="person">Here is :
<div>name : <span>{ name }</span> </div> <div>name : <span>{ name }</span> </div>
......
...@@ -16,7 +16,7 @@ const PersonListing = props => { ...@@ -16,7 +16,7 @@ const PersonListing = props => {
useEffect( () => { useEffect( () => {
console.log('component did mount'); console.log('component did mount');
const fetchData = async () => { const fetchData = async () => {
const data = await mockFetch('http://source.of.data/persons',1000); const data = await mockFetch('http://source.of.data/persons');
setPersons( data ); setPersons( data );
} }
fetchData(); fetchData();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment