2017-03-20 11 views
3
buttonPress = (event) => { console.log(event.props.value)} 

    <RaisedButton ref={(button) => { this.RaisedButton = button; }} label="Primary" value = "year" onTouchTap={()=>this.buttonPress(this.RaisedButton)} primary={true} /> 

上記のように1つのボタンをレンダリングしようとすると、値が得られます。しかし、複数のボタンをレンダリングすると、すべてのボタンの最後のボタンの値だけが取得されます。どんなボタンをクリックしてもyearが得られます。対応するボタンの値属性を取得する方法は?

buttonPress = (event) => { console.log(event.props.value)} 

     <RaisedButton ref={(button) => { this.RaisedButton = button; }} label="Primary" value = "day" onTouchTap={()=>this.buttonPress(this.RaisedButton)} primary={true} /> 
<RaisedButton ref={(button) => { this.RaisedButton = button; }} label="Primary" value = "month" onTouchTap={()=>this.buttonPress(this.RaisedButton)} primary={true} /> 
<RaisedButton ref={(button) => { this.RaisedButton = button; }} label="Primary" value = "year" onTouchTap={()=>this.buttonPress(this.RaisedButton)} primary={true} /> 

対応するボタンの値はどのように取得できますか?

+0

矢印機能は 'this'をスコープしません。 this.RaisedButtonは常にParentComponent.RaisedButtonです。個々の参照ではありません。 – Joe

答えて

2

ボタンへの参照は1つだけ保持し、refコールバックはお互いを上書きします。代わりに、あなたはは、3つの別々の参照にそれらを分割できます。サイドノートで

<RaisedButton ref={(button) => { this.RaisedButtonDay = button; }} label="Primary" value = "day" onTouchTap={()=>this.buttonPress(this.RaisedButtonDay)} primary={true} /> 
<RaisedButton ref={(button) => { this.RaisedButtonMonth = button; }} label="Primary" value = "month" onTouchTap={()=>this.buttonPress(this.RaisedButtonMonth)} primary={true} /> 
<RaisedButton ref={(button) => { this.RaisedButtonYear = button; }} label="Primary" value = "year" onTouchTap={()=>this.buttonPress(this.RaisedButtonYear)} primary={true} /> 

、何をbuttonPressに渡していることは、イベントオブジェクトではなく、ボタン自体への参照ではありません。

+0

'RaisedButton'のイベントオブジェクトを取得する方法を教えてください。私は試しましたが、成功できませんでした。そのため、私はrefを使用しなければなりませんでした。 –

関連する問題