web-dev-qa-db-fra.com

Tableau de passage de React Composants à usestate Retours Tableau vide

Code très simple ici. Je me demande si c'est le résultat attendu. Je mettant la mise à niveau d'un module npm et cela nécessite que je passe ces éléments à useState qui n'était pas nécessaire auparavant. Malheureusement, je suppose que cela ne peut pas être fait avec useState? Ai-je raison? J'aimerais avoir tort.


props.items Contient un tableau de classe React Composants, useState renvoie un tableau vide:

const [items, set] = useState(props.items);

Saisir:

enter image description here

Production:

enter image description here

* Remarque, les images utilisent la propagation de la propagation de la matrice parce que je suis à l'abri des idées, retravaillez toutes les choses.

8
Slbox

Vous ne devriez avoir aucun problème avec l'utilisation de la matrice de réact d'élément comme entrée pour usestate. Mais, chaque fois que vous initialisez votre état avec des accessoires provenant du parent, vous devez également ré-mettre à jour votre état une fois que le pro de parent change. Sinon, il dirigera le vieil état passé du parent au premier passage. Et la voie à suivre est de faire un setitems avec UseEffect Crochet

useEffect(() => {
   setItems(props.items)
}, [props.items])

bTW Ceci ne fera que vérifier l'égalité de référence entre l'ancien et le nouveau tableau, si vous souhaitez faire une comparaison approfondie, vous devez probablement utiliser quelque chose comme tiliser-profusion-effet

2
Moinul Hossain