質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Material-UI

Material-UIは、Material Designを利用可能なオープンソースのReact向けUIコンポーネントキットです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

906閲覧

material-ui Table の onRowSelection が想定した動作にならない

ktrkmk

総合スコア6

Material-UI

Material-UIは、Material Designを利用可能なオープンソースのReact向けUIコンポーネントキットです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2018/06/12 08:00

編集2018/06/12 08:44

前提・実現したいこと

React を学習しています。
Web の記事などを参考にコードを記述しているのですが、Table の onRowSelection が想定した動作にならず困っております。

発生している問題・エラーメッセージ

<Table> において multiSelectable={true} とし、複数のチェックボックスを選択した状態を onRowSelection={index => this.onRowSelection(index)} にて処理したいのですが、

  • indexes に入ってくる値が「最後にクリックしたチェックボックスの行番号」になってしまう
  • チェックボックスをクリックしてもチェックされた状態が反映されない

という現象になります。

該当のソースコード

リポジトリはこちらになります。

上記を heroku にデプロイしたものがこちらになります。

app.jsx.js において、ハンドラを

js

1onRowSelection(selectedRow) { 2 console.log(selectedRow); 3 this.setState({ selectedRow: selectedRow }); 4}

のように記述し、JSX を

js

1<Table multiSelectable={true} onRowSelection={index => this.onRowSelection(index)}> 2 <TableHeader displaySelectAll={false}> 3 <TableRow> 4 <TableHeaderColumn>ID</TableHeaderColumn> 5 <TableHeaderColumn>Name</TableHeaderColumn> 6 </TableRow> 7 </TableHeader> 8 <TableBody deselectOnClickaway={false} showRowHover={true}> 9 {this.state.rows.map(function(row){ 10 return ( 11 <TableRow key={row.id}> 12 <TableRowColumn>{row.id}</TableRowColumn> 13 <TableRowColumn>{row.name}</TableRowColumn> 14 </TableRow> 15 ) 16 })} 17 </TableBody> 18</Table>

のように記述しています。

試したこと

学習中ということもあり、どのようなことを試せばよいか手立てがつかめない状態です。

補足情報(FW/ツールのバージョンなど)

Rails 5.2.0
React 16.4.0
material-ui 0.20.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gipcompany

2018/06/15 21:00

Rails上のjsxのデバッグだと再現のためのコストも高いため、可能であればhttps://codesandbox.io/のようなサイトへコードをあげて頂き共有頂くと多くのフロントエンドエンジニアを巻き込んで意見が聞けると思うので良いかと思いますのでご検討ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問