首页 > 解决方案 > 在 React 中一键连续调用函数

问题描述

我需要基于一个 onClick 事件执行 2 个函数。为此,我通过stackoverflow找到了一些方法。(参考调用多个函数 onClick ReactJS

但是,就我而言,如果我指定为onClick={this.handleClick}按预期工作。但是,如果我指定为onClick={(event) => {this.handleClick()}},则单击按钮时不会发生任何事情。这可能是什么原因?onClick 一个接一个地调用两个函数的最佳方式是什么,其中第二个函数调用取决于第一个函数调用的结果。

标签: javascriptreactjsonclick

解决方案


在 Javascript 中,this不是为一段代码静态定义的(就像在 99% 的其他语言中一样),而是从调用上下文中获取(即它是动态范围的),因此它可能会根据调用函数的人员和时间而有所不同。

在第二种情况下,this计算较晚:当函数被调用时。在第一种情况下,在附加事件时对其进行评估(因此它是“正确的”)。

解决方案是简单地使用第一个版本 - 延迟调用它没有任何好处(无论如何,事件将作为第一个参数传递)。


推荐阅读