Angenommen, ich habe drei Eingaben: rate, sendAmount und receiveAmount. Ich habe diese 3 Eingänge auf useEffect diffing params gesetzt. Die Regeln sind:
- Wenn sendAmount geändert wurde, berechne ich
receiveAmount = sendAmount * rate
- Wenn receiveAmount geändert wurde, berechne ich
sendAmount = receiveAmount / rate
- Wenn sich die Rate ändert, berechne ich
receiveAmount = sendAmount * rate
wannsendAmount > 0
odersendAmount = receiveAmount / rate
wannreceiveAmount > 0
Hier ist die Codesandbox https://codesandbox.io/s/pkl6vn7x6j , um das Problem zu demonstrieren.
Gibt es eine Möglichkeit, das oldValues
und newValues
dergleichen zu vergleichen, componentDidUpdate
anstatt 3 Handler für diesen Fall zu erstellen?
Vielen Dank
Hier ist meine endgültige Lösung mit usePrevious
https://codesandbox.io/s/30n01w2r06
In diesem Fall kann ich nicht mehrere verwenden, useEffect
da jede Änderung zu demselben Netzwerkanruf führt. Deshalb changeCount
verfolge ich die Änderung auch. Dies ist changeCount
auch hilfreich, um Änderungen nur von lokal zu verfolgen, damit ich unnötige Netzwerkanrufe aufgrund von Änderungen vom Server verhindern kann.