2016-05-18 28 views
3

最新のMaterial UIでTableコンポーネントを使用していますが、選択時にテーブルの行からデータを取得する方法がわかりません。Material UIのTableRowコンポーネントからデータを取得

文書にはonRowSelectionという表コンポーネントの小道具が記載されていますが、選択された行のみにRowNumberが与えられます。

どうやってこれを使うのですか?私はあなたが何を言っているのか理解していません...同じTableRowのRowNumber小道具だけを使ってTableRowに設定されている重要な小道具。

次のコードは、私はテーブル自体をレンダリングし、キーを割り当てています方法を示しています。

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; 
    } 
} 

私はちょうどその時、選択された行のRowNumber関数は全く私を助けることになっているか理解していません代わりに行のキーにアクセスする必要があります。

本当にありがとうございます。ありがとう!表のための

ドキュメント:http://www.material-ui.com/#/components/table

+0

がここで答えた同じ質問ですか? http://stackoverflow.com/questions/36656447/react-material-ui-table-cant-get-element-fromrow – Marc

+0

方法では、私は推測する...しかし、私の問題は、その質問は返され、 'key' propは' onRowSelection'を使って選択されている行を識別するために使用されているものではありません。その代わりに、 'table'によって自動的に生成されるいくつかの' rowNumber'プロパティが使用されています。実際に 'key'プロップを使用してその質問/ – MisutoWolf

+0

キー値に任意の値を設定できます。そのリンクされた質問/回答の例の行作成.mapを見てください。完全なオブジェクトにリンクすることもできます。それは役に立ちますか? –

答えて

4

あなたはあなたのユーザーの配列(this.props.users)にインデックスとして行番号を使用することができます。

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

私は今夜このショットを出し、結果を報告します! – MisutoWolf

+0

このコードを今晩テストすると、これは完全に機能します。どうもありがとう、答えは受け入れられました!再度、感謝します! – MisutoWolf

関連する問題