React项目出现no-unused-expressions错误,求代码修复方案
修复ESLint错误:no-unused-expressions(React项目)
错误原因
你的代码触发no-unused-expressions规则,核心是运算符优先级问题:JavaScript会先把setScore (score >= 80)解析成函数调用(参数是score >=80的布尔值),剩下的? "A" : ...就变成了没有被使用的孤立表达式,这违反了ESLint禁止无意义表达式的规则。
修复方案
方案1:给三元表达式加括号
直接把整个三元运算结果作为setScore的参数传递,加括号明确优先级,快速解决问题:
const handleIndexScore = () => { setScore((score >= 80) ? "A" : (score >= 70) ? "B" : (score >= 60) ? "C" : (score >= 50) ? "D" : "E"); }
方案2:提取三元结果到变量(推荐)
把评分逻辑抽成独立变量,代码可读性更高,也能彻底避免优先级类问题:
const handleIndexScore = () => { const grade = score >= 80 ? "A" : score >= 70 ? "B" : score >= 60 ? "C" : score >= 50 ? "D" : "E"; setScore(grade); }
方案3:改用if-else逻辑(适合复杂条件)
如果后续评分规则可能调整,用if-else的写法可读性更强,维护成本更低:
const handleIndexScore = () => { let grade; if (score >= 80) { grade = "A"; } else if (score >= 70) { grade = "B"; } else if (score >= 60) { grade = "C"; } else if (score >= 50) { grade = "D"; } else { grade = "E"; } setScore(grade); }
内容的提问来源于stack exchange,提问作者Johan
相关产品推荐
相关产品推荐

