javascript-在事件处理程序回调中传递事件参数

我可以使用以下代码成功地从事件处理程序传递参数.

但是我想知道,如何将事件传递给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做出特殊的事情,否则它将始终是最后一个参数,因此您可以从中开始.

上一篇:javascript-Redux thunk在下一个动作之前无法解析,则不是函数或未定义的调度


下一篇:javascript-使用Redux的React中的初始状态不起作用