मान लीजिए कि मेरे पास 3 इनपुट हैं: दर, SendAmount, और ReceAmount। मैं उस 3 निविष्टियाँ का उपयोग करता हूं परफ़ेक्ट डिफरेंट पाराम्स। नियम हैं:
- यदि SendAmount बदल गया है, तो मैं गणना करता हूं
receiveAmount = sendAmount * rate - यदि प्राप्त राशि बदल गई है, तो मैं गणना करता हूं
sendAmount = receiveAmount / rate - यदि दर में परिवर्तन हुआ है, तो मैं गणना करता हूं कि मैं
receiveAmount = sendAmount * rateकबsendAmount > 0याsendAmount = receiveAmount / rateकब गणना करता हूंreceiveAmount > 0
समस्या को प्रदर्शित करने के लिए यहाँ कोडैंडबॉक्स https://codesandbox.io/s/pkl6vn7x6j है।
क्या इस मामले के लिए 3 हैंडलर बनाने के बजाय तुलना करना oldValuesऔर newValuesपसंद करना एक तरीका है componentDidUpdate?
धन्यवाद
यहाँ मेरा अंतिम समाधान usePrevious
https://codesandbox.io/s/30n01w2r06 है
इस स्थिति में, मैं useEffectएक से अधिक का उपयोग नहीं कर सकता क्योंकि प्रत्येक परिवर्तन एक ही नेटवर्क कॉल के लिए अग्रणी है। इसलिए मैं भी changeCountपरिवर्तन को ट्रैक करने के लिए उपयोग करता हूं । यह changeCountकेवल स्थानीय से परिवर्तनों को ट्रैक करने में सहायक है, इसलिए मैं सर्वर से परिवर्तनों के कारण अनावश्यक नेटवर्क कॉल को रोक सकता हूं।