En mode Strict, React appelle certaines  fonctions deux fois au lieu d'une.

Ce comportement de développement est utile pour nous aider à garder les composants purs.

React utilise le résultat de l'un des appels et ignore le résultat de l'autre appel. Tant que vos fonctions de composant et de calcul sont pures, cela ne devrait pas affecter votre logique. Cependant, s'ils sont accidentellement impurs, cela vous aide à remarquer et à corriger l'erreur.

Par exemple, la fonction ci-dessous est pure :

const incrementAll = () => {
    const copy_counters =  counters.map(counter => {
      counter.value++;
      return counter;
    })
    setCounters(counters => copy_counters);
  }

alors que celle-ci ne l'est pas :

const incrementAll = () => {
    setCounters(counters => counters.map(counter => {
      counter.value++;
      return counter;
    }));
  }