假设我有 3 个输入:rate、sendAmount 和 receiveAmount。我把这 3 个输入放在 useEffect diffing 参数上。规则是:
- 如果 sendAmount 改变,我计算
receiveAmount = sendAmount * rate
- 如果 receiveAmount 改变,我计算
sendAmount = receiveAmount / rate
- 如果汇率改变,我计算
receiveAmount = sendAmount * rate
何时sendAmount > 0
或我计算sendAmount = receiveAmount / rate
何时receiveAmount > 0
这是用于演示问题的代码和框https://codesandbox.io/s/pkl6vn7x6j。
有没有办法比较oldValues
and newValues
like oncomponentDidUpdate
而不是为这种情况制作 3 个处理程序?
谢谢
这是我使用https://codesandbox.io/s/30n01w2r06 的最终解决方案usePrevious
在这种情况下,我不能使用多个,useEffect
因为每次更改都会导致相同的网络调用。这就是为什么我也使用changeCount
跟踪更改的原因。这changeCount
也有助于仅从本地跟踪更改,因此我可以防止由于来自服务器的更改而导致不必要的网络调用。