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 * ratequandosendAmount > 0ou calculosendAmount = receiveAmount / ratequandoreceiveAmount > 0
Aqui está a codesandbox https://codesandbox.io/s/pkl6vn7x6j para demonstrar o problema.
Existe uma maneira de comparar o oldValuese newValuescomo em componentDidUpdatevez 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 useEffectporque cada alteração está levando à mesma chamada de rede. É por isso que eu também uso changeCountpara acompanhar a mudança. Isso changeCounttambé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.