Google Material UIを使用しています。
以下のソースでtodos変数にDOMを入れてこの後レンダリングしています。
レンダリング後に、TableRowのクリックイベントで処理をしたいのですが、上手くいかずです。
以下のコードで実行するとレンダリング時にアラートが表示されてしまい、
その後クリックしても何も反応しないです。
想定では
- レンダリング時にはイベントが反応しない
- クリックするとalertが実行される
なのですが・・・。
ご教授願います。
javascript
1let todos = this.todos.map((item) => { 2 return (<TableRow key={item.id} onRowClick={ alert() }> 3 <TableRowColumn>{item.title}</TableRowColumn> 4 <TableRowColumn>{item.description}</TableRowColumn> 5 </TableRow>); 6});
======================追記======================
added at 2017/1/4
以下のように修正しましたが以前状況変わらずです。
抜粋になりますが、こんな具合です。
状況としては、レンダリング時にアラートが表示されてしまい、クリックしても何も反応しないです。
すみません、ご教授願います・・
javascript
1export default class Todo extends React.Component { 2 3 constructor(props) { 4 super(props) 5 ... 6 } 7 8 render() { 9 let todos = this.todos.map((item) => { 10 return (<TableRow key={item.id} onRowClick={ this.handleClick() }> 11 <TableRowColumn>{item.title}</TableRowColumn> 12 <TableRowColumn>{item.description}</TableRowColumn> 13 </TableRow>); 14 }); 15 16 return (<div> 17 <RefreshIndicator 18 percentage={this.percentage} 19 size={this.size} 20 left={0} 21 top={0} 22 color={this.color} 23 status="ready" 24 style={this.styleOfIndicator} 25 /> 26 <span style={this.styleOfTitle}></span> 27 <SubTitle>{this.props.title}</SubTitle> 28 <Table style={this.styleOfTable}> 29 <TableBody> 30 {todos} 31 </TableBody> 32 </Table> 33 </div> 34 ); 35 } 36 37 handleClick(e) { 38 alert("") 39 } 40}

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/01/05 09:18
2017/01/05 10:26