1

我在我的 React 应用程序中使用以下包来生成 Recaptcha 组件:https ://github.com/appleboy/react-recaptcha

这是组件的外观,带有 eslint 警告: ESlint 警告代码块

this.recaptchaRef定义如下:this.recaptchaRef = React.createRef();

当我的表单出现错误时,这个 ref 允许我重置 Recaptcha,如下所示:this.recaptchaRef.reset();

如果不编写 ESlint 注释,我将如何解决此错误?

4

2 回答 2

3

箭头函数,如果{后面没有=>,将返回后面的任何表达式。目前,您的箭头函数正在分配event返回。(即使消费者完全忽略了返回值,它仍然会产生一个 linting 错误。)所以,只需使用大括号来确保不返回任何内容:this.recaptchaRef event

ref={(event) => {
  this.recaptchaRef = event;
}}
于 2018-07-02T05:27:14.413 回答
1

根据箭头函数的文档,它们可以具有“简洁主体”或通常的“块主体”。

在简洁的正文中,仅指定了一个表达式,该表达式成为显式返回值。在块体中,您必须使用显式返回语句。

因此,在您使用的示例中,指定了“简洁正文”。简洁的身体意味着没有周围的卷曲括号。因此,即使没有 return 关键字,也会返回表达式。由于您想避免返回表达式,因此您需要将主体更改为“块主体”,即在=>运算符之后指定大括号,即

ref = {event => {
    this.recaptchaRef = event;
}};
于 2018-07-02T08:58:12.197 回答