【发布时间】:2020-05-04 16:00:09
【问题描述】:
我正在构建一个 React 应用程序,我使用 Create React App 作为构建环境。在我的(基于类的)组件之一中,componentDidUpdate() 方法中有以下行:
const toast = ([] = this.props.toast.toast);
如果我的理解是正确的,这是 ES2016 语法,用于在未定义变量的情况下设置默认值。 (如果这不正确,请告诉我,虽然这不是这个问题的主要观点)。
当我的 React 应用程序呈现时,我在控制台中收到以下警告:Unexpected empty array pattern no-empty-pattern。
我知道 ESLint “抱怨”它是一个空数组这一事实。但是在那种情况下我想要一个空数组,为什么会导致警告?
我可以简单地告诉 ESLint 忽略它吗(使用 // eslint-disable-line no-empty-pattern)?
【问题讨论】:
-
不,你的理解还差得很远。可以使用
=符号对参数function(param = []) {}执行默认值,但对于典型的赋值,您需要const toast = this.props.toast.toast || [];,这只是逻辑或短路。 -
另一个关于函数参数的:Is there a better way to do optional function parameters in JavaScript? 指向另一个好的副本。
-
Default values when destructuring 当值不是专门的
undefined时,它也有一个重复导致简单的||。 -
感谢所有链接,原来是 Prettier 调整了我错误的语法以生成我在问题中包含的行。由于我缺乏 ES2016 经验并做出了一些非常糟糕的假设,这使情况更加复杂。
标签: javascript reactjs eslint