Je réécritez un composant de classe avec des crochets de réaction (car il est plus propre) mais je suis confronté à un problème. Dans mon composant de classe, j'ai une fonction de rappel sur je veux seulement que ma fonction soit exécutée Lorsque l'état a-t-il des changements - non de l'état B ... Cependant, il recommençait à tout moment l'état de l'état d'un ou de l'état B rend. p> J'ai essayé uniquement d'une dépendance - A - dans le Usecallback [a] - mais le problème est alors que je reçois: réagir Crochet USCallback a une dépendance manquante: 'B'. L'inclure ou la suppression de la matrice de dépendance p> p> this.setstate ({b: "bla bla bla"}, () => {// fait une fonction avec l'état A}) code>, de sorte que chaque Time State X a changé, j'utiliserais la nouvelle valeur d'état en conjonction avec l'état B. Lorsque j'essaie de mettre en œuvre la même fonctionnalité avec des crochets de réaction, comme:
3 Réponses :
Peut-être essayez peut-être d'utiliser comme la seule dépendance et à la fin de la fonction, utilisez un commentaire comme celui-ci: p> que Désactiver la dépendance manquante et vous donnera le résultat que vous souhaitez.
Cela fonctionne habituellement pour moi. P> p>
si vous Avoir une fonction HandLechanger, je peux vous donner un exemple si votre état contient des données personnelles: P> usestate code> vous permet d'envoyer une fonction dans ses paramètres, comme un CB, toujours ce CB doit renvoyer un nouvel état pour rendre
Exemple:
useEffect code> ne possède aucune fonction dans ce moment, y
usersallback code> n'est pas nécessaire p>
const [person, setPerson] useState({name: '', lastName: ''})
const handleChange = (newPerson) => {
setPerson((person) => {
/** 'person' in this moment represent the state without changes */
/** You can do all that you need with 'person' */
console.log(person)
/** */
return (newPerson)
})
}
useEffect est composé de deux params
effet: une fonction impérative pouvant renvoyer une fonction de nettoyage; p>
DEPS: Si présent, l'effet n'active que si les valeurs de la liste changent. p>
Obtenez ces informations sur les conseils de code Visual Studio P>
Donc, si vous souhaitez activer l'effet uniquement lorsque "A" change, vous devez mettre "A" sur DEPS. P>
useEffect(() => {}, [A]);
Mais qu'en est-il: réagir Crochet USECallback a une dépendance manquante: 'B'. L'inclure ou la suppression de la matrice de dépendance
Avez-vous essayé
useeffect (() => {...}, [a]) code> ou
useeffect (() => {...}, [A, B]) code>? Je ne sais pas exactement ce que représentent les variables. De toute façon, vous devriez coller vrai i> code pour éviter le problème XY.
@Merci, vous n'avez essayé que d'une dépendance - A - dans l'Usecallback [a] - mais le problème est que je reçois: réagir Hook Usecallback a une dépendance manquante: 'B'. L'inclure ou la suppression de la matrice de dépendance