2016-11-24 6 views
0

クラスを取得し、イベントを親に返します。タッチされたボタン番号(上げボタンのラベル)を取得したい。私はイベントを返すが、私は私がconsole.log()それをしたいときに見つけることができません。ハンドラ(オブジェクト)、Target(SyntheticUIEvent)、およびIsRevoked(ブール)が含まれています。onTouchTapイベントから値を取得

interface INumberButtonRow { 
row: number; 
handleButtonClicked: any; 
} 

export class NumberButtonRow extends React.Component<INumberButtonRow, any> { 
render() { 
    // Create button with a number label 
    return (<NumberButton buttonClicked={this.handleButtonClicked} number={1} />); 
} 

// Get number from onTouchTap or from number 
handleButtonClicked(onTouchTapEvent) { 
    console.log(onTouchTapEvent) 
    } 
} 

interface INumberButtonProps { 
number: number; 
buttonClicked: any; 
} 

export class NumberButton extends React.Component<INumberButtonProps, any> { 
render() { 
    let number = this.props.number.toString(10) 
    return <RaisedButton label={number} onTouchTap={this.props.buttonClicked}/>; 
    } 
} 

答えて

1

(あなたがanyにキャストする必要があります)onTouchTapEvent.targetは、ボタン要素であるべきであり、あなたはそれからラベルを取得することができるはずです。

しかし、私はこれが優れていると思う:

export class NumberButtonRow extends React.Component<INumberButtonRow, any> { 
    ... 

    handleButtonClicked(label: string) { 
     console.log(label) 
    } 
} 

export class NumberButton extends React.Component<INumberButtonProps, any> { 
    render() { 
     return <RaisedButton label={number} onTouchTap={() => { 
      this.props.buttonClicked(this.props.number.toString(10)); 
     }}/>; 
    } 
} 
関連する問題