Giả sử tôi có 3 đầu vào: tỷ lệ, sendAmount và receiveAmount. Tôi đặt 3 đầu vào đó vào các thông số khác nhau của useEffect. Các quy tắc là:
- Nếu sendAmount thay đổi, tôi tính
receiveAmount = sendAmount * rate
- Nếu receiveAmount thay đổi, tôi tính
sendAmount = receiveAmount / rate
- Nếu tỷ lệ thay đổi, tôi tính
receiveAmount = sendAmount * rate
khi nàosendAmount > 0
hoặc tôi tínhsendAmount = receiveAmount / rate
khi nàoreceiveAmount > 0
Dưới đây là mãandbox https://codesandbox.io/s/pkl6vn7x6j để trình bày vấn đề.
Có cách nào để so sánh oldValues
và newValues
thích componentDidUpdate
thay vì làm 3 xử lý cho trường hợp này không?
Cảm ơn
Đây là giải pháp cuối cùng của tôi với usePrevious
https://codesandbox.io/s/30n01w2r06
Trong trường hợp này, tôi không thể sử dụng nhiều useEffect
vì mỗi thay đổi sẽ dẫn đến cùng một cuộc gọi mạng. Đó là lý do tại sao tôi cũng sử dụng changeCount
để theo dõi sự thay đổi. Điều này changeCount
cũng hữu ích để theo dõi các thay đổi chỉ từ cục bộ, vì vậy tôi có thể ngăn cuộc gọi mạng không cần thiết vì những thay đổi từ máy chủ.