在JSX点击中传递数据的正确方式
Correct way to pass data in JSX clicks
第一个
<div tabIndex="0"
onKeyPress={this.onHandleClick.bind(null, 'first')}
onClick={this.onHandleClick.bind(null, 'first')}>
第二次
onHandleClick = (event) => {
$(event.currentTarget).data('circle')
}
<div tabIndex="0"
data-circle="first"
onClick={this.onHandleClick}>
有没有其他更干净、正确的方法?这两种感觉都像黑客:尤其是在JSX中使用bind。
如果您想要将参数传递给onClick处理程序,只需正常调用它,并让函数返回一个函数:
onClick={this.onHandleClick('first')}
onHandleClick(value) {
return function() {
// logic that now has access to `value`
}
}
和绑定一样有效,可能会更清楚一点。肯定比依赖jquery要好。
您可能会遇到的另一种情况是,回调中需要正确的"this"指针、一些任意参数和事件对象本身。在这种情况下,你可以这样做:
<button onClick={(event) => this.handleAction('arbitrary-data', event)}> ... </button>
handleAction(data, event) {
event.preventDefault()
// this.state.something
console.log(`data ${data}`)
}
相关文章:
- 如何“;过滤器”;或者以其他方式重构该数据
- 在页面上记录数据并实现pushstate()的最佳方式
- 以角度渲染表中数据的最佳方式
- DC.js数据表没有按应有的方式显示
- 存储数据的最佳方式是什么,以便与jquery一起使用
- 显示数据的最快方式
- 数据在确认框中的显示方式存在问题
- 以编程方式透视谷歌可视化数据表
- 将数据从视图传输到javascript的最佳方式
- 在JSX点击中传递数据的正确方式
- 以编程方式为传单地图上的标记提供数据属性
- AngularJS中使用ajax获取数据的最佳方式是什么
- Spring MVC与Google图表,创建javascript数据表的最佳方式是什么
- 更新视图和控制器之间的角度重复数据值的最佳方式是什么
- 有没有办法对一些javascript进行沙盒处理,这样它就不能以任何方式将数据发送到服务器
- 如何将相同的 JavaScript 数据传递给 HTML 两种不同的方式
- 如何以与使用Javascript的PHP相同的方式获取数据
- 在定期更新的 Angular 中存储和使用数据的最佳方式
- 如何以编程方式将所需行移动到数据表的顶部
- 显示具有 MVC 数据绑定视图模型 ASP.NET JQuery 对话框的最佳方式