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);
}
我正在尝试将按钮对象传递给函数并从该函数访问其属性。 我的按钮:
<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);
}