2015-01-04 7 views
5

React-Komponenten sind genial, wenn wir wissen, wie man das Problem trennt. Allerdings finde ich diesen Fall wirklich schwer zu abstrahieren.Wie modelliere ich eine HTML-Tabelle mit einer Spalte pro Komponente in React?

 
    | A | B | C | 
    | A.a | B.a | C.a | 
    | A.b | B.b | C.b | 
    | A.c | B.c | C.c | 

Ich habe die API, die mit 1-Säule pro Anforderung zurück, zum Beispiel: [Aa, Ab, Ac] so normalerweise Ich mag A, B, C, um eine Komponente reagieren und sie machen es Eltern Komponente

In diesem Fall kann ich jedoch nicht leicht wegen der HTML-Struktur Geschmack tr pro Komponente, nicht pro Spalte.

Hat jemand eine Ahnung davon?

+0

Verwenden Sie eines der CSS-Grid-Layouts, z. B. twitter bootstrap. Sie könnten einige Probleme haben, wenn die Spalten unterschiedliche Höhen haben und Sie sie gleichmäßig benötigen, aber es ist nach ein wenig Basteln machbar. – daniula

+0

Idealerweise sollten Sie Dinge trennen, so dass Sie pro __row__ eine Reaktionskomponente haben. Wenn Sie für jede Spalte unterschiedliche AJAX-Antworten haben, führen Sie alle Anforderungen aus und ordnen Sie diese dann einer horizontalen Tabellenstruktur zu, wenn Sie die einzelnen Tabellenzeilenkomponenten übergeben. Wenn die Daten überhaupt aktualisiert werden müssen, wenn Sie sie auf 'state' setzen, sollte die gleiche Mapping-Funktion erneut ausgeführt werden. –

+0

Quick Hack: http://jsfiddle.net/0tk44f75/1 offensichtlich können Sie es in zusätzliche Komponenten teilen. nicht die schönste Art es zu tun – knowbody

Antwort

0

Iteration anders, iterieren Sie die Eigenschaften! Verwenden Sie eine "RowRenderer" -Komponente, die alle Eigenschaften durchläuft .a, .b, .c, vorausgesetzt, dass Sie diese im Voraus kennen. Verwenden Sie pro Eigenschaft einen "CellRenderer", der ein Objekt wie A, B, C und den Eigenschaftsnamen der Iteration übernimmt und die Zelle rendert.

Verwandte Themen