【问题标题】:React proper way to pass function as prop with parameters反应正确的方式来传递函数作为带有参数的道具
【发布时间】:2019-10-02 17:08:39
【问题描述】:

如果我尝试以这种方式将带有参数的函数作为 props 从 Parent 组件传递给 Child 组件:

handleClick={() => handleClick(tiposObjetivos.RENTA_TEMPORAL)}

每次父组件重新渲染时,子组件都会重新渲染,因为它会在每次渲染中创建函数。将函数作为带参数的道具传递的更好方法是什么?

【问题讨论】:

  • 为什么需要将带有函数的参数传递给孩子?如果孩子需要在某个时间调用该函数,那么编写一个单独的函数来调用您现在尝试传递的函数并将该单独的函数传递给孩子不是更好吗?

标签: reactjs


【解决方案1】:

有两种方法可以将函数作为道具传递

  <button onClick={(e) => this.deleteRow(id, e)}>Delete Row</button>
    <button onClick={this.deleteRow.bind(this, id)}>Delete Row</button>

上面两行是等价的,分别使用箭头函数和Function.prototype.bind。

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 1970-01-01
    • 2020-07-07
    • 2011-09-15
    • 1970-01-01
    • 2019-03-26
    • 2022-06-20
    相关资源
    最近更新 更多