मूल निवासी के ListView documentation प्रतिक्रिया के अनुसार, एक ListView डेटा स्रोत निर्धारित में rowHasChanged के मानक कार्यान्वयन निम्नलिखित के साथ घोषित किया जाना चाहिए जब भी पंक्ति बदल गया है:रिएक्टिव मूल सूची दृश्य का 'rowHasChanged' का उद्देश्य क्या है?
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
मेरा प्रश्न यहाँ है: क्या प्रदान करने के लिए होने के पीछे विचार यह है एक पंक्ति बदल गई है या नहीं, यह पता लगाने का एक स्पष्ट और मामूली कार्यान्वयन? क्या ऐसे कोई मामले हैं जहां यह कार्यान्वयन सच नहीं है? मैंने कल्पना की होगी कि ListViewDataSource कम से कम एक डेटासेट बनाने के लिए हर बार इस कोड को कॉपी और पेस्ट करने के बजाय इस तरह के एक छोटे से फ़ंक्शन के लिए डिफ़ॉल्ट कार्यान्वयन प्रदान करता।
आईडी की तुलना में सभी वस्तुओं की तुलना से अधिक कुशल नहीं है, वास्तव में यह शायद कम कुशल है (जावास्क्रिप्ट मुख्य रूप से जाँच में वस्तु तुलना करता है, तो स्मृति पते समान हैं): यहाँ एक व्याख्या है। वे जो प्लेसहोल्डर कार्यान्वयन प्रदान करते हैं वह संभवतः उतना ही कुशल है जितना आप प्राप्त कर सकते हैं, इसलिए मुझे यकीन नहीं है कि यहां उद्देश्य दक्षता है या नहीं। – Tarek
मेरी राय में @ rmevans9 स्पष्टीकरण सही है https://github.com/facebook/react-native/issues/4104 –