Nach Heimisch in Reagieren der ListView documentation, eine Listview-Datenquelle mit der folgenden Standard-Implementierung von rowHasChanged werden sollte bestimmen, um erklärt, wenn die gegebene Zeile geändert hat:Was ist der Zweck von Reactive Native ListView 'rowHasChanged'?
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
Meine Frage ist: was hinter mit der Idee, zur Verfügung zu stellen eine so offensichtliche und triviale Implementierung der Erkennung, ob sich eine Zeile geändert hat oder nicht? Gibt es Fälle, in denen diese Implementierung nicht zutrifft? Ich hätte mir gedacht, dass ListViewDataSource mindestens eine Standardimplementierung für solch eine triviale Funktion zur Verfügung gestellt hätte, anstatt diesen Code jedes Mal kopieren und einfügen zu müssen, wenn wir eine Datenquelle erstellen.
ids Vergleich ist überhaupt nicht effizienter als die Objekte zu vergleichen, in der Tat ist es wahrscheinlich weniger effizient (Objektvergleich in Javascript in erster Linie überprüft, ob die Speicheradressen gleich sind). Die Platzhalterimplementierung, die sie bereitstellen, ist wahrscheinlich so effizient wie möglich, daher bin ich mir nicht sicher, ob der Zweck hier die Effizienz ist. – Tarek
Meiner Meinung nach @ rmevans9 Erklärung ist richtig https://github.com/facebook/react-native/issues/4104 –