我可以使用下面的代码成功地从事件处理程序传递参数。
但我想知道,我如何将event
传递给函数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>
);
}
}
答案 0 :(得分:3)
我如何将事件传递给函数handleDown?
你不是,事件机制没有,但考虑到问题中的代码,handleDown
将收到事件作为你事后的第一个参数。提供了。
所以这里:
<Child
handleDown={this.handleDown.bind(this)}
/>
这将是handleDown
的第一个参数,在这里:
<span
onMouseDown={this.props.handleDown.bind(this, 'argumentOne')}
>
这将是handleDown
的第二个参数。
我可能会修改第一个bind
调用以传递null
或其他内容,以便您始终将其作为第二个参数。但除非React做了一些特别的事情,否则它总是 last 参数,所以你可以从中做到。