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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

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

Q&A

解決済

1回答

2009閲覧

【React】【Material UI】コンポーネントに新たな属性を持たせる

akachachi

総合スコア38

Material-UI

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

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

0グッド

0クリップ

投稿2017/07/19 02:40

編集2017/07/20 03:13

現在ReactとMaterial UIをもちいて,
「キーワードを入力して検索すると,検索結果が表示され, それをクリックできる」
というような検索エンジンライクなものを作成しています.

そこで,それぞれの検索結果1件1件を
RaisedButtonをもちいて表示しているのですが,
そのRaisedButtonに属性を持たせる方法がわかりません.

具体的には,
上から2件目のRaisedButtonをクリックすると
Reactの方で「それが2件目である」と判定したいです.

key属性のようなものを持たせて判定したいと思っているのですが,
知識不足でうまくできません.

どうぞよろしくお願い致します.

---- 追記 -----

以下のように, ajaxで得た検索結果が入っている exp.pages に含まれる検索結果それぞれを
RaisedButtonとして表示しようとしており,
表示したそれぞれをタップした時に,clickRequestのハンドラーの中で
どの検索結果がタップされたかを識別したいです.

for (let page of exp.pages) { let pagejsx = ( <div > <RaisedButton onTouchTap={clickRequest} children={page.Title}> </RaisedButton> </div> ); }

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/07/19 11:12

コードを載せて頂けると回答しやすいです
guest

回答1

0

ベストアンサー

イベント発火時にどのデータが叩かれたを知りたいのであれば、keyを持たせるというよりかは、onTouchTapイベントに引数としてArray内部のデータを渡すのが一番簡単な方法だと思います。

javascript

1//該当のArray 2 const exppages = [ 3 {pageTitle:"test1",num:1}, 4 {pageTitle:"test2",num:2}, 5 {pageTitle:"test3",num:3},{pageTitle:"test4",num:4}, 6 {pageTitle:"test5",num:5},{pageTitle:"test6",num:6},{pageTitle:"test7",num:7}]; 7 8 //Array処理 9 const listElement = exppages.map((value,index,array) => { 10 return ( 11 <RaisedButton onTouchTap={() => this.clickRequest(value)} children={value.pageTitle} /> 12 ) 13 }); 14

実際に動くものを下記URLに置いておきます。
https://www.webpackbin.com/bins/-KpTS20F9W0qqw8SFP4L

投稿2017/07/20 05:27

tei_kin

総合スコア21

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

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

akachachi

2017/07/20 05:52

ありがとうございます!とても参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問