2016-05-18 12 views
3

Ich verwende eine Tabelle Komponente in der neuesten Version des Material UI, und ich bin nicht sicher, wie ich soll aus einer Tabelle der Reihe Erfassen von Daten, wenn es ausgewählt ist.Erste Daten aus TableRow Komponente in Material UI

Die Dokumentation erwähnt eine Stütze für die Tabelle Komponente namens onRowSelection, aber es gibt Ihnen nur eine RowNumber für die Zeile, die ausgewählt wurde, nichts anderes.

Wie geht es Ihnen jede Verwendung dieser überhaupt machen soll? Ich verstehe nicht, wie du sagen sollst ... die Schlüsselrequisite, die auf TableRow gesetzt ist, benutze nichts als die RowNumber-Requisite derselben TableRow.

-Code unten zeigt, wie ich bin Rendern der Tabelle selbst, und die Zuordnung der Schlüssel:

handleSelect(id) { 
    console.log(id); 
    this.props.dispatch({ type: 'SET_SELECTED_USER', user: id }); 
} 

renderUsers() { 
    if (this.props.users && this.props.currentUser) { 
    const currUser = this.props.currentUser.username; 
    const userList = this.props.users.map((user) => { 
     if (currUser !== user.username) { 
     return (
      <TableRow key={user._id}> 
      <TableRowColumn>{user.username}</TableRowColumn> 
      <TableRowColumn>{user.roles[0]}</TableRowColumn> 
      </TableRow> 
     ); 
     } 
    }); 
    return userList; 
    } 
} 

Ich verstehe einfach nicht, wie die RowNumber der Reihe wird ausgewählt soll mir überhaupt helfen, wenn Ich muss stattdessen auf den Schlüssel der Zeile zugreifen.

würde Jede mögliche Unterstützung wirklich zu schätzen! Vielen Dank!

Docs für Tabelle: http://www.material-ui.com/#/components/table

+0

Ist die gleiche Frage beantwortet? http://stackoverflow.com/questions/36656447/react-material-ui-table-cant-get-element-from-row – Marc

+0

In gewisser Weise, denke ich ... aber mein Problem scheint, dass, im Gegensatz zu sein, wie Diese Frage wird beantwortet. Die Property 'key' wird nicht verwendet, um die ausgewählte Zeile zu identifizieren, wenn' onRowSelection' verwendet wird. Stattdessen wird eine beliebige 'rowNumber' -Eigenschaft automatisch von' Table' generiert und verwendet, was überhaupt nicht hilfreich ist, wenn ich sie wirklich brauche, um die 'key'-Props zu verwenden, wie von dieser Frage/Antwort vorgeschlagen. – MisutoWolf

+0

Sie können den Schlüsselwert mit den gewünschten Werten füllen. Sehen Sie sich die Zeilenerstellung .map im Beispiel in dieser verknüpften Frage/Antwort an. Sie können sogar auf das vollständige Objekt verlinken. Hilft das? –

Antwort

4

Sie die Zeilennummer als Index in der Benutzer-Array (this.props.users) verwenden:

handleSelect(userIndex) { 
    const currUser = this.props.currentUser.username; 
    const users = this.props.users.filter(user => user.username !== currUser) 
    this.props.dispatch({ type: 'SET_SELECTED_USER', user: users[userIndex].id }); 
} 
+0

Ich werde auf jeden Fall das heute Abend einen Schuss und mit den Ergebnissen berichten! – MisutoWolf

+0

Nach dem Testen dieses Codes heute Abend funktioniert das perfekt. Vielen Dank, die Antwort wurde mit Sicherheit angenommen! Danke noch einmal! – MisutoWolf