Digamos que eu tenho 3 entradas: rate, sendAmount e receiveAmount. Coloquei essas 3 entradas nos parâmetros diferentes useEffect. As regras são:
- Se sendAmount for alterado, eu calculo
receiveAmount = sendAmount * rate
- Se receiveAmount mudou, eu calculo
sendAmount = receiveAmount / rate
- Se a taxa for alterada, calculo
receiveAmount = sendAmount * rate
quandosendAmount > 0
ou calculosendAmount = receiveAmount / rate
quandoreceiveAmount > 0
Aqui está a codesandbox https://codesandbox.io/s/pkl6vn7x6j para demonstrar o problema.
Existe uma maneira de comparar o oldValues
e newValues
como em componentDidUpdate
vez de fazer 3 manipuladores para este caso?
obrigado
Aqui está minha solução final com usePrevious
https://codesandbox.io/s/30n01w2r06
Nesse caso, não posso usar vários useEffect
porque cada alteração está levando à mesma chamada de rede. É por isso que eu também uso changeCount
para acompanhar a mudança. Isso changeCount
também é útil para rastrear alterações somente do local, para que eu possa impedir chamadas de rede desnecessárias devido a alterações do servidor.