web-dev-qa-db-fra.com

Dépendances vides avec useMemo ou useCallback VS useRef

Dans ce problème GitHub j'ai essentiellement proposé de changer:

x = useCallback( ... , []);

À:

x = useRef( ... ).current;

Les deux sont identiques mais avec useRef React ne compare pas les dépendances.

Pour lequel une réponse est venue avec une question:

Y a-t-il jamais une situation où un useMemo sans dépendance ou useCallback serait un meilleur choix que useRef?

Je ne peux pas penser à un, mais j'ai peut-être ignoré certains cas d'utilisation.

Alors, quelqu'un peut-il penser à une telle situation?

9
Izhaki

Parce que la sortie de useRef (() => {...}). Current est modifiable.

Ce qui peut provoquer des effets secondaires étranges dans votre code. Je peux modifier la valeur du courant à tout moment. https://codesandbox.io/s/confident-monad-vjeuw

Ce serait le cas d'utilisation pour ne pas vouloir utiliser useRef

0
Daniel Duong