ich einen Code-Schnipsel haben wie dieseAlle TableRows werden jedes Mal, wenn eine Zeile erneut gerendert mit Reagieren und Material-ui ausgewählt ist
<Table selectable onRowSelection={this.onRecordSelected} bodyStyle={tableBodyStyle}>
<TableBody deselectOnClickaway={false} showRowHover displayRowCheckbox={false}>
{this.props.taskRecords.map((row, index) => (
<TableRow key={row.get('id')} selected={this.state.selectedRecordRowId === index}>
<TableRowColumn>{row.getIn(['task', 'name'])}</TableRowColumn>
<TableRowColumn>{row.getIn(['task', 'description'])}</TableRowColumn>
<TableRowColumn>{row.get('status')}</TableRowColumn>
<TableRowColumn>{row.get('log')}</TableRowColumn>
</TableRow>
))}
</TableBody>
</Table>
ich den Quellcode von TableRow
und TableRowColumn
geprüft, fand ich sie nicht umsetzen shouldComponentUpdate
Methode. Ich verstehe, dass sie neu gerendert werden würden, wenn sich ein Zustand ändert.
Ich habe versucht, pure
Funktion in recompose
Bibliothek zu verwenden, um diese zu Komponenten zu reinigen.
Sie noch erneut gerendert wurden
In meinem Verständnis Komponenten nach der Reinigung nicht mehr erneut gerendert werden, wenn gegeben props
werden nicht verändert. In diesem Fall sind alle Stützen entweder unveränderbare Objekte von oder Funktionen.
Gibt es eine Möglichkeit zu verhindern, dass es neu erstellt, wenn ich eine Zeile auswähle?
Vielen Dank im Voraus.
Vielen Dank für Ihre Lösung! Das Problem mit diesem Ansatz besteht nach dem Umbrechen der 'TableRow' in' MyRow', der onSelect-Handler von 'TableRow' funktioniert nicht richtig. – kaze13
Tut mir leid, aber ich sehe keine 'onSelect'-Handler in 'TableRow' component =/Ich habe die offizielle Dokumentation und https://github.com/callemall/material-ui/blob/master/src/Table überprüft /TableRow.js Quelldatei – steppefox