2017-04-26 2 views
0

Ich bin neu zu reagieren native & Redux, ich habe viel experimentiert und fast eine funktionierende App. Ich habe eine Frage darüber, wie man die Daten in redux organisiert, was die Performance beim Parsen mit Listview/Flatlist in nativen Reaktionen verbessern würde.Wie Objekte in redux mit Immutablejs zu organisieren und read native zur Verwendung in Flatlist

Unten ist Struktur der Daten, die ich von meiner API erhalte.

const data = { 
     "abcd1": { 
      "id":"abcd1", 
      "title": "test", 
      "contentOrder": 2 
     }, 
     "abcd2": { 
      "id":"abcd2", 
      "title": "test2", 
      "contentOrder": 1 
     } 
    } 

Convert

const sortedMap = new Immutable.OrderedMap(data).sortBy((item) => item.contentOrder) 

Reducer fusionieren

case ActionTypes.FETCH_SECTION.SUCCESS: 
    return state.merge({ 
     isFetching: false, 
     result: action.response, 
     error: "" 
    }) 

Ich ändere dies einem immutablemap mit Immutablejs und Schieben zu redux Shop Immutablemap. Nun, wenn ich die Elemente aus Staat für die Anzeige in Flatlist oder Listview, die einzige Option, die ich sehen, lesen möchten, ist ein Array mit allen Elementen wie

let newsItem = [] 
    state.get("data").valueSeq().forEach((val, index) => { 
     newsItem.push(val) 
    }); 

    and use it like this inside the component 

    <FlatList 
     data={newsItem} 
     keyExtractor={(item, index) => item.id} 
     renderItem={this._renderRow} 
    /> 

Also meine Frage zu schaffen, ist dies eine gute Praxis? oder gibt es eine bessere Implementierung, die ich vermisse.

Ich muss auch unendlich scrollen, dafür plane ich meine Aktion "onEndReached" aufzurufen, um den Speicher mit den neuen Daten von Api zusammenzuführen.

Ich möchte dies auf die richtige Weise implementieren, um Leistungsengpässe zu vermeiden.

Vielen Dank für Ihre Beratung & Hilfe

Antwort

0

die Rechenzeit der Regel zu reduzieren, indem Sie versuchen getan Berechnung gänzlich zu beseitigen.

Dies wird oft von einer Bibliothek wie reselect gemacht, die Ihnen hilft, den minimalen Zustand innerhalb des Redux-Speichers zu speichern. Diejenigen sind die beiden ersten Einführungsleitung von der Seite github:

Selektoren können abgeleiteten Daten berechnen, so dass die Redux minimal möglichen Zustand zu speichern. Selektoren sind effizient. Ein Selektor wird nicht neu berechnet, es sei denn, eines seiner Argumente ändert sich.

+0

Danke, ja, ich benutze erneut zu wählen, um die Daten von redux speichern. Könnten Sie mich wissen lassen, ob die oben erwähnte Art der Konvertierung von immaturablemap in list eine gute Idee ist? Es sieht so aus, als ob ich einige zusätzliche Schritte mache, um die Map in eine Liste zu konvertieren, nur um sie an FlatList zu übergeben - ich nehme an, es gibt einen besseren Weg, dies zu tun – Jana

Verwandte Themen