Javascript 传递事件+;事件处理程序回调中的参数
我可以使用下面的代码成功地从事件处理程序传递参数 但我想知道,我该如何将Javascript 传递事件+;事件处理程序回调中的参数,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我可以使用下面的代码成功地从事件处理程序传递参数 但我想知道,我该如何将事件传递给函数handleDown class Parent extends React.Component { handleDown(argumentOne) { } render () { return ( <div> <Child handleDown={this.handleDown.bind(this)}
事件
传递给函数handleDown
class Parent extends React.Component {
handleDown(argumentOne) {
}
render () {
return (
<div>
<Child
handleDown={this.handleDown.bind(this)}
/>
</div>
);
}
}
class Child extends React.Component {
constructor(props) {
super(props);
}
render () {
return (
<div>
<span
onMouseDown={this.props.handleDown.bind(this, 'argumentOne')}
>
Click here
</span>
</div>
);
}
}
类父级扩展React.Component{
汉德尔敦(一){
}
渲染(){
返回(
);
}
}
子类扩展了React.Component{
建造师(道具){
超级(道具);
}
渲染(){
返回(
点击这里
);
}
}
我该如何将事件传递给handleDown函数
不需要,事件机制需要,但给定问题中的代码,handleDown
将接收事件作为您提供的参数之后的第一个参数
因此,这里:
<Child
handleDown={this.handleDown.bind(this)}
/>
这将是handleDown
的第二个参数
我可能会修改第一个bind
调用来传递null
或其他内容,以便您始终将其作为第二个参数。但是,除非React做了一些特殊的事情,否则它将始终是最后一个参数,因此您可以从该参数开始工作。Btw,super(props)
是不必要的,除非您需要访问构造函数内部的props
。以防你不知道。
<span
onMouseDown={this.props.handleDown.bind(this, 'argumentOne')}
>