Disons que j'ai 3 entrées: rate, sendAmount et receiveAmount. Je mets que 3 entrées sur useEffect des paramètres différents. Les règles sont:
- Si sendAmount a changé, je calcule
receiveAmount = sendAmount * rate - Si receiveAmount a changé, je calcule
sendAmount = receiveAmount / rate - Si le taux a changé, je calcule
receiveAmount = sendAmount * ratequandsendAmount > 0ou je calculesendAmount = receiveAmount / ratequandreceiveAmount > 0
Voici le codeandbox https://codesandbox.io/s/pkl6vn7x6j pour illustrer le problème.
Existe-t-il un moyen de comparer les oldValueset les newValuesautres au componentDidUpdatelieu de créer 3 gestionnaires pour ce cas?
Merci
Voici ma solution finale avec usePrevious
https://codesandbox.io/s/30n01w2r06
Dans ce cas, je ne peux pas utiliser plusieurs useEffectcar chaque changement conduit au même appel réseau. C'est pourquoi j'utilise également changeCountpour suivre le changement. Cela est changeCountégalement utile pour suivre les modifications à partir du local uniquement, afin que je puisse éviter les appels réseau inutiles en raison des modifications du serveur.