react js中如何通过"this"指向event starter?

How to pass "this" to point the event starter in react js?

我正在尝试将按钮对象传递给函数并从该函数访问其属性。 我的按钮:

<RaisedButton label="Primary" id = "1" onTouchTap={()=>this.buttonPress(this)}  primary={true} />

我的函数:

buttonPress = (event) => {
        console.log(event);
    }

所有代码都在我在主要组件中使用的单独组件中。问题是当我按下按钮时,它没有将按钮对象传递给它发送整个组件的函数。我怎样才能只获得按钮对象?

最好的方法是:

onTouchTap={this.buttonPress.bind(this, someProperty)}

使用这样的事件处理程序:

buttonPress (someProperty) {
    console.log(someProperty);
}

因此,您无需访问 RaisedButton 属性,只需将事件处理程序与您需要的道具绑定即可。

编辑:正如 Ardentum 指出的那样,我的原始答案(如下)记录了单击 DOM 元素。尝试做这样的事情:

<RaisedButton 
    ref={(button) => { this.RaisedButton = button; }}
    onTouchTap={()=>this.buttonPress( this.RaisedButton )}
/>

原回答: this in onTouchTap={()=>this.buttonPress(this)} 指的是您渲染 <RaisedButton (...) /> 的整个组件。为了传递正在 TouchTapped 的按钮,您可以使用

onTouchTap={(event)=>this.buttonPress(event)}

然后

buttonPress = (event) => {
    console.log(event.target);
}