javascript - 在 React 中一键连续调用函数
问题描述
我需要基于一个 onClick 事件执行 2 个函数。为此,我通过stackoverflow找到了一些方法。(参考调用多个函数 onClick ReactJS)
但是,就我而言,如果我指定为onClick={this.handleClick}
按预期工作。但是,如果我指定为onClick={(event) => {this.handleClick()}}
,则单击按钮时不会发生任何事情。这可能是什么原因?onClick 一个接一个地调用两个函数的最佳方式是什么,其中第二个函数调用取决于第一个函数调用的结果。
解决方案
在 Javascript 中,this
不是为一段代码静态定义的(就像在 99% 的其他语言中一样),而是从调用上下文中获取(即它是动态范围的),因此它可能会根据调用函数的人员和时间而有所不同。
在第二种情况下,this
计算较晚:当函数被调用时。在第一种情况下,在附加事件时对其进行评估(因此它是“正确的”)。
解决方案是简单地使用第一个版本 - 延迟调用它没有任何好处(无论如何,事件将作为第一个参数传递)。
推荐阅读
- flutter - 使用 Cloud Functions Flutter 对 Firebase 实时数据库执行查询
- mysql - 在一次查询中使用外键数据更新和删除表
- python - 从 Django 中的 POST 请求中获取价值
- c - 检测内存损坏
- php - Phalcon4 模型分页
- java - 如何在java中水平组合两个不同维度的二维数组
- rundeck - Rundeck ACL 隐藏定义
- javascript - 下载前水平翻转图像
- kubernetes - Kubernetes:从本地端口(UDP、TCP)到特定服务的流量转发
- flutter - dio http get error ArgumentError (Invalid argument(s) (input): Must not be null) flutter