预期有一个赋值或函数调用,但看到的是一个表达式。eslintno-unused-expressions

Dha*_*r S 7 javascript reactjs eslint

您好,我在函数内使用三元运算符。但 eslint 会抛出错误。请帮我解决这个问题。

  const Test = (showBtn, bubbleId, latitude, longitude, zoom, drillLevel) => {
    setShowBtn(showBtn);
    drillLevel === 'area' ? getCitiesData(bubbleId) : getStatesData();
    setViewport({
      ...viewport,
      latitude,
      longitude,
      zoom,
    });
  };
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 6

if如果您当前的代码有效,那么完全避免使用条件运算符并使用/可能会更合适else

if (drillLevel === 'area') getCitiesData(bubbleId)
else getStatesData();
Run Code Online (Sandbox Code Playgroud)

这样,您实际上就没有任何未使用的表达式,这是修复此类 linter 警告的正确方法。


pal*_*aѕн 2

allowTernary您可以简单地在三元运算符表达式上方添加此注释,以禁用该行的 eslint 错误:

/*eslint no-unused-expressions: ["error", { "allowTernary": true }]*/
drillLevel === 'area' ? getCitiesData(bubbleId) : getStatesData();
Run Code Online (Sandbox Code Playgroud)