当前位置: 首页 > 知识库问答 >
问题:

使用ES6语法通过onclick事件传递参数

程俊健
2023-03-14

如何使用ES6语法向onClick事件传递额外参数?

例如:

handleRemove = (e) => {

}

render() {
     <button onClick={this.handleRemove}></button>
}

我想向handleRemove函数传递一个id,如下所示:

<button onClick={this.handleRemove(id)}></button>

共有3个答案

岳谦
2023-03-14

像这样使用箭头函数

<button onClick={()=>{this.handleRemove(id)}}></button>
崔涵亮
2023-03-14

使用button元素的value属性传递id,如下所示

<button onClick={this.handleRemove} value={id}>Remove</button>

然后在HandleRemove中,将事件中的值读取为:

handleRemove(event) {
...
 remove(event.target.value);
...
}

这样可以避免每次重新渲染此组件时创建新函数(与使用箭头函数相比)。

郁明诚
2023-03-14

请记住,在onClick={…}中,..是一个JavaScript表达式。所以

... onClick={this.handleRemove(id)}

是和一样的

var val = this.handleRemove(id);
... onClick={val}

换句话说,您可以立即调用this.handleRemove(id),并将该值传递给onClick,这不是您想要的。

相反,您希望创建一个新函数,其中一个参数已预先填充;基本上,您需要以下内容:

var newFn = function() {
  var args = Array.prototype.slice.call(arguments);

  // args[0] contains the event object
  this.handleRemove.apply(this, [id].concat(args));
}
... onClick={newFn}

有一种方法可以在ES5 JavaScript中表达这一点:Function.prototype.bind

... onClick={this.handleRemove.bind(this, id)}

如果使用React.createClass,React会自动在实例方法上为您绑定this,并且它可能会抱怨,除非您将其更改为this.handleRemove.bind(null, id) .

您也可以简单地定义内联函数;如果您的环境或transpiler支持箭头函数,则箭头函数会使其变短:

... onClick={() => this.handleRemove(id)}

如果您需要访问该活动,您可以将其传递给:

... onClick={(evt) => this.handleRemove(id, evt)}

 类似资料:
  • 问题内容: 没有参数 带参数 我想得到。我怎么才能得到它? 问题答案: 试试这个: 并在您的职能:

  • 我在ListItem中设置了一个事件。然后在调用的方法上调用来传递单击的列表项的id和name值。 下面的问题建议使用bind,但似乎将onCLick事件添加到ListItem会破坏列表绑定。 在添加单击事件之前,与的列表范围绑定按预期工作,并填充列表。 此外,如果我尝试没有参数,则单击事件不起作用。 问题: 如何在JSX中的onClick事件绑定中传递参数? 列表定义: 从单击事件调用的方法:

  • 问题内容: 我正在使用Html5服务器发送事件。服务器端是Java Servlet。我有一个要传递给服务器的json数组数据。 如果数组大小较小,则服务器端可以获取查询字符串。但是,如果数组大小很大。(可能超过数千个字符),服务器无法获取查询字符串。是否可以使用POST方法将json数组传递到服务器,从而避免了查询字符串长度的限制? 问题答案: 不可以,SSE标准不允许POST。 (出于技术原因,

  • 问题内容: 我正在使用PhantomJS page.evaluate()进行抓取。我的问题是我传递到Webkit页面的代码是沙盒化的,因此无法访问我的主要幻象脚本的变量。这使得很难使抓取代码通用。 如何将参数推入页面? 问题答案: 我遇到了确切的问题。可以使用一些技巧,因为它也可以接受字符串。 有几种方法可以执行此操作,但是我使用了一个称为的包装器,该包装器接受其他参数以传递给必须在Webkit端

  • 本文向大家介绍PHP通过引用传递参数用法分析,包括了PHP通过引用传递参数用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP通过引用传递参数用法。分享给大家供大家参考,具体如下: 先看一个手册上的示例: 输出: 如果没有这个&符号, 输出: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总

  • 问题内容: 我使用window.open方法打开了带有参数的新站点,我必须通过post方法来传递它。我找到了解决方案,但不幸的是它不起作用。这是我的代码: 接下来,我创建数组: 并通过以下方式调用函数: 但是,当我单击此按钮时,站点test.asp为空(当然,我尝试获取传递值- )。 我怎么解决这个问题,为什么我不能获得通过值? 问题答案: 无需将表单写入新窗口(要用HTML代码中的值进行编码就很