You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不关闭ESLint如何解决React中no-unused-expressions报错问题?

报错根因
  • 触发no-unused-expressions ESLint规则的核心原因是代码中把三元运算符作为独立语句使用,没有对它的返回值做赋值、返回、传参等任何操作,ESLint判定该表达式为无意义的无效代码。
  • 额外优化提示:最初使用map的版本存在API误用问题,map设计用来生成新数组,单纯遍历操作建议使用forEach或者更合适的数组聚合方法。
修复方案

方案1:替换三元运算为if分支(最易读)

直接把三元的判断逻辑改为标准if流程控制语句,if属于语句而非表达式,不会触发校验规则:

const allConcat = (listOfObj) => {
    let stringConcat = '';
    Object.keys(listOfObj).forEach(item => {
      if (listOfObj[item] === 1) {
        stringConcat += item
      }
    });
    return stringConcat
}

方案2:使用reduce聚合结果(最优写法)

不需要声明外部可变变量,三元运算的结果直接作为reduce的返回值被消费,完全符合ESLint规则,逻辑更简洁:

const allConcat = (listOfObj) => {
  return Object.keys(listOfObj).reduce((concatStr, item) => 
    listOfObj[item] === 1 ? concatStr + item : concatStr, 
  '')
}

两种方案都不需要修改或关闭ESLint规则,也能正常实现原有功能。

内容的提问来源于stack exchange,提问作者Kevin Wu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 09:24:04