Ich verwende Tabelle von Material UI react components library. Ich muss einige benutzerdefinierte Verhalten zu TableRow hinzufügen, also versuche ich es zu zerlegen (und ich plane, es in meine Komponente einzubinden, um einige zusätzliche ui und Logik hinzuzufügen).Material UI Tabelle Komponenten Zersetzung seltsames Verhalten
Also, wenn ich versuche, table component zu zerlegen - es ist Pausen Markup. Wie Sie sehen können, fehlen Kontrollkästchen.
See Demo
Mein Code:
import React from 'react';
import {Table, TableBody, TableHeader, TableHeaderColumn, TableRow, TableRowColumn} from 'material-ui/Table';
const MyTableRow =() => {
return <TableRow>
<TableRowColumn>1</TableRowColumn>
<TableRowColumn>John Smith</TableRowColumn>
<TableRowColumn>Employed</TableRowColumn>
</TableRow>;
}
const TableExampleSimple =() => (
<Table>
<TableHeader>
<TableRow>
<TableHeaderColumn>ID</TableHeaderColumn>
<TableHeaderColumn>Name</TableHeaderColumn>
<TableHeaderColumn>Status</TableHeaderColumn>
</TableRow>
</TableHeader>
<TableBody>
<MyTableRow />
<MyTableRow />
<MyTableRow />
<TableRow>
<TableRowColumn>2</TableRowColumn>
<TableRowColumn>Randal White</TableRowColumn>
<TableRowColumn>Unemployed</TableRowColumn>
</TableRow>
<TableRow>
<TableRowColumn>4</TableRowColumn>
<TableRowColumn>Steve Brown</TableRowColumn>
<TableRowColumn>Employed</TableRowColumn>
</TableRow>
</TableBody>
</Table>
);
export default TableExampleSimple;
Was ist der Grund für ein solches Verhalten?
UPD
Es ist eine Annahme: TableBody clones children components. Aber ich weiß immer noch nicht, was ist die beste Praxis der Dekomposition von Table-Komponenten und fügen Sie einige benutzerdefinierte Verhalten hinzu. Kann mir jemand erklären, wie es geht?
Leider gibt es in Ihrem Beispiel sehe ich das gleiche Problem: Kontrollkästchen fehlen. Und wenn Sie native TableRow-Komponenten hinzufügen, sehen Sie das Problem. Ich möchte die Tabelle in meine eigenen Komponenten zerlegen, jede von ihnen würde native Tabellenkomponenten umhüllen und zusätzliches Verhalten hinzufügen - das ist die Idee. – WebBrother