没有参数
function clickMe(e){
//e is the event
}
<button onClick={this.clickMe}></button>
带参数
function clickMe(parameter){
//how to get the "e" ?
}
<button onClick={() => this.clickMe(someparameter)}></button>
我想得到event
。我怎么才能得到它?
function clickMe(e){
//e is the event
}
<button onClick={this.clickMe}></button>
function clickMe(parameter){
//how to get the "e" ?
}
<button onClick={() => this.clickMe(someparameter)}></button>
我想得到event
。我怎么才能得到它?
解决方案1
function clickMe(parameter, event){
}
<button onClick={(event) => {this.clickMe(someparameter, event)}></button>
解决方案2 在解决方案1中,使用绑定函数比使用箭头函数更好。请注意,事件参数应该是处理函数中的最后一个参数。
function clickMe(parameter, event){
}
<button onClick={this.clickMe.bind(this, someParameter)}></button>
使用ES6,您可以像这样更短地进行操作:
const clickMe = (parameter) => (event) => {
// Do something
}
并使用它:
<button onClick={clickMe(someParameter)} />
尝试这个:
<button onClick={(e) => {
this.clickMe(e, someParameter)
}}>Click Me!</button>
并在您的职能:
function clickMe(event, someParameter){
//do with event
}
为了完全解决造成新的回调问题,利用
data-*
HTML5中的属性是IMO的最佳解决方案。从一天开始,即使您提取了一个子组件来传递参数,它仍然会创建新功能。例如,
有关使用属性的信息,请参见https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes
data-*
。