簡體   English   中英

在事件處理程序回調中傳遞事件+參數

[英]Passing event + arguments in an event handler callback

我可以使用下面的代碼成功地從事件處理程序傳遞參數。

但我想知道,我如何將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>
    );
  }
}

我如何將事件傳遞給函數handleDown?

沒有,事件機制確實如此,但考慮到問題中的代碼, handleDown將在你提供的事件之后接收事件作為第一個參數。

所以在這里:

<Child 
    handleDown={this.handleDown.bind(this)}
/>

它將是handleDown的第一個參數,在這里:

<span
    onMouseDown={this.props.handleDown.bind(this, 'argumentOne')}
>

這將是handleDown的第二個參數。

我可能會修改第一個bind調用以傳遞null或其他東西,以便您始終將其作為第二個參數。 但除非React做了一些特別的事情,否則它將永遠是最后一個參數,所以你可以從中做到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM