Beste Weg, um die filter-Tabelle in Reagieren
Ich habe ein array von Objekten gespeichert, die in redux. Ich möchte in der Lage sein filter-array basierend auf Benutzereingaben. Sollte ich ein Status-Objekt, das das array empfängt durch Requisiten und ändern Sie das array, oder ist es schlechte Praxis zu mischen, Staat und Requisiten? Wenn es in Ordnung ist auf die beiden zu vermischen, soll ich den Staat in componentWillReceiveProps?
- todomvc ist sehr logischen Ansatz zu Folgen, der zum filtern Zustand. hier sieht es aus mit reagieren/redux github.com/reactjs/redux/blob/master/examples/todomvc/...
- Ich bin mehr auf der Suche nach so etwas wie dieses, facebook.github.io/fixed-data-table/example-filter.html, außer ich bekomme das array durch Requisiten, anstatt es als mein Zustand.
- Genau das gleiche Prinzip gilt wenn. Denken Sie daran, Ihre Requisiten sind von jemand anderem Zustand. Speichern Sie Ihr Benutzer-Eingabe als Staat irgendwo.. entweder redux oder in der table-Komponente, dann filtern Sie Ihre Requisiten array vor, dass die filter-Zustand.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gebäude Zustand basierend auf Requisiten, kann etwas kompliziert sein, das ist akzeptabel, aber Sie sollten prüfen, alle Ihre Möglichkeiten.
Am einfachsten zu implementieren ist es zu filtern, die Requisiten, die in Ihrem
render
Methode. Wenn Sie klein genug sind Komponenten, die nicht aktualisiert zu viele Gründe, und vor allem, wenn die Anzahl der Elemente in der Liste sehr niedrig ist, könnte dies die bevorzugte Methode:Die nächste Möglichkeit ist, das zu tun, was du beschreibst, und daraus eine berechnete Zustand der Komponente, die den filter-Zustand und Requisiten übergeben. Das ist gut, wenn Sie haben eine komplizierte Komponente, die erhält viele Requisiten und gerendert wird oft. Hier bist du Zwischenspeicherung der sichtbaren Elemente und nur das filtern der Liste, wenn es muss gefiltert werden.
Und schließlich die redux 'Weg', die erfordert, dass Sie passieren die Aktion Schöpfer und
filterStr
als Requisiten um die Komponente, wahrscheinlich, übergeben in der viaconnect
woanders. Die Umsetzung ist unten mit einer stateless Komponente, da wir nicht halten diefitlerStr
im Bauteil Zustand.this.state.viewableEls
abgeleitet ist vollständig von Requisiten und Staat, wobei Staat Feldern sollte wirklich enthalten einzigartige Informationen. Sie behaupten, dies ist eine Zwischenspeicherung nutzen, aber ich sehe es nicht; da ein render wird nur ausgelöst, wenn Requisiten/state update sowieso., but if you are receiving other props which trigger
Rendern, but which shouldn't affect the value of
diese.Zustand.viewableEls, then there is. Unless I'm misunderstanding you, of course. Lets say 90% of the re-renders are triggered by the change of a prop which
viewableEls` ist nicht eine Funktion von (sagen wir es ist ein Echtzeit-chat-Komponente, die ist ein Kind), undelements
im Bereich von zig-tausenden von Elementen, es wird nicht trivial, aber unncessary re-Berechnung jedes mal, wenn eine neue Nachricht kommt durch. Nein?handleFilterChange
Funktion?