我可以使用以下代码成功地从事件处理程序传递参数.
但是我想知道,如何将事件传递给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
onm ouseDown={this.props.handleDown.bind(this, 'argumentOne')}
>
Click here
</span>
</div>
);
}
}
解决方法:
how would I as well pass the event to the function handleDown?
您不需要,事件机制可以,但是给定问题中的代码,handleDown会将事件作为您提供的事件之后的第一个参数接收.
所以在这里:
<Child
handleDown={this.handleDown.bind(this)}
/>
它是handleDown的第一个参数,在这里:
<span
onm ouseDown={this.props.handleDown.bind(this, 'argumentOne')}
>
这将是handleDown的第二个参数.
我可能会修改第一个绑定调用以传递null或其他内容,以便您始终将其作为第二个参数.但是,除非React做出特殊的事情,否则它将始终是最后一个参数,因此您可以从中开始.