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 * rate
quandsendAmount > 0
ou je calculesendAmount = receiveAmount / rate
quandreceiveAmount > 0
Voici le codeandbox https://codesandbox.io/s/pkl6vn7x6j pour illustrer le problème.
Existe-t-il un moyen de comparer les oldValues
et les newValues
autres au componentDidUpdate
lieu 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 useEffect
car chaque changement conduit au même appel réseau. C'est pourquoi j'utilise également changeCount
pour 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.