代码之家  ›  专栏  ›  技术社区  ›  Ralph David Abernathy

如何使用eslint解决警告:在RETURN语句中不允许赋值(不允许赋值)?

  •  1
  • Ralph David Abernathy  · 技术社区  · 6 年前

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

    下面是组件的外观,带有eslint警告:

    this.recaptcharef is defined like so: this.recaptcharef=react.createref();

    当我的窗体出现错误时,此引用允许我重置RecapTCha,如so: this.RecapTCharef.Reset();

    如果不编写eslint注释,如何解决此错误?

    下面是组件的外观,带有eslint警告: ESlint warning code block

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

    当我的表单出现错误时,此引用允许我重置recaptcha,如下所示: this.recaptchaRef.reset();

    如果不编写eslint注释,如何解决此错误?

    2 回复  |  直到 6 年前
        1
  •  3
  •   CertainPerformance    6 年前

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

    ref={(event) => {
      this.recaptchaRef = event;
    }}
    
        2
  •  1
  •   GauravLuthra    6 年前

    根据以下文件: Arrow functions 他们可以有一个“简洁的身体”或通常的“块体”。

    在简洁体中,只指定一个表达式,该表达式将成为显式返回值。在块体中,必须使用显式返回语句。

    因此,在您使用的示例中,指定了“简明正文”。简洁的正文意味着没有环绕的花括号。因此,即使没有返回关键字,也会返回表达式。因为要避免返回表达式,所以需要将正文更改为“块正文”,即在后面指定花括号 => 操作员,即

    ref = {event => {
        this.recaptchaRef = event;
    }};