如何以参数为参数传递函数?

时间:2019-06-18 12:51:46

标签: reactjs

我想编写一种自定义逻辑来确定哪个<NavLink>是活动的。因此,我执行以下操作:

handleIsActive(match, location) { ... }

render() {
    return <NavLink isActive={this.handleIsActive} />
}

这很完美。但是,如何将更多信息发送到handleIsActive?例如:

<NavLink isActive={this.handleIsActive(product_id)} /> // Does not work

3 个答案:

答案 0 :(得分:0)

我认为这是一个解决方案

<NavLink isActive={() => this.handleIsActive(product_id)} />

答案 1 :(得分:0)

您正在执行函数this.handleIsActive(product_id),并将返回值用作isActive属性,所以您正在做的是(假设您没有从this.handleIsActive返回任何内容)< / p>

<NavLink isActive={undefined} />

您需要传递对类似函数的引用

<NavLink isActive={() => this.handleIsActive(/* insert arguments here */)} />

答案 2 :(得分:0)

尝试一下

<NavLink isActive={(match, location) => this.handleIsActive(match, location ,product_id)} />

并处理这样的功能

handleIsActive(match, location, product_id) { ... }