如何检查 React 中是否存在全局变量(使用 ESLint 编译时)?

问题描述 投票:0回答:2

我有一个仅有时出现的全局对象。在我的 Create React App 项目中,我想使用条件来根据此全局对象是否存在来设置不同的值。然而,ESLint 阻止我编译,因为它不喜欢未定义的变量。

我可以检查变量是否未定义,例如:

if (typeof componentObj === "undefined") {
  message = "Default message";
}

ESLint 对此很满意。但我不能在其中添加

else
,例如:

if (typeof componentObj === "undefined") {
  message = "Default message";
}
else {
  message = componentObj.message;
}

ESLint 将在 else 语句中出现未定义的

componentObj.message;
错误。

我该如何解决这个问题?

javascript reactjs eslint create-react-app
2个回答
0
投票

我发现我通过添加注释让 ESLint 忽略某些行

// eslint-disable-line

所以对于上述我可以做:

  if (typeof componentObj === "undefined") {
    greeting = 'Data not from component object';
  }
  else {
    greeting = componentObj.title;  // eslint-disable-line
  }

它将编译。


-1
投票

if (typeof componentObj === "undefined") {
  message = "Default message";
}
else if("message" in componentObj) {
  message = componentObj.message;
}

// OR

if (typeof componentObj === "undefined") {
  message = "Default message";
}
else if(componentObj.hasOwnProperty("message")) {
  message = componentObj.message;
}

© www.soinside.com 2019 - 2024. All rights reserved.