React JS style属性编写条件样式时先后出现两类报错的问题求助
核心错误定位
- 第一处硬伤:你给
style属性赋值了一个匿名箭头函数() => { ... }。React的style属性只接收键值对形式的样式对象,不会自动执行传入的函数;退一步说就算这个函数能被执行,函数内部也没有写return返回值,就算执行也拿不到样式对象,因此实际传给style的是整个函数引用,触发“style需要对象而非其他类型”的报错。 - 第二处触发ESLint报错的原因:你写的箭头函数内部是两个独立的三元表达式语句,既没有给变量赋值、也没有触发函数调用,属于无意义的独立表达式,因此ESLint提示“Expected an assignment or function call and instead saw an expression”。
修复方案
不需要用函数包裹style逻辑,直接在JSX中通过条件判断返回最终的样式对象即可,把你原有的两个亮度判断逻辑合并成统一的条件判断:
<td key={coluna} style={{ // 满足两个任意一个条件就调低亮度 filter: ( (linha === 0 && coluna === e) || (linha === 4 && coluna === i) ) ? "brightness(0.6)" : "brightness(1)" }} > {dias_no_mes[indice++]} </td>
补充注意点:td标签本身不支持
onLoad事件,绑定在td上的onLoad回调永远不会触发,你写的变量自增逻辑完全不会执行,这部分的计数逻辑需要调整实现位置,不能依赖td的onLoad钩子。按照上述修改调整后,不需要手动添加/* eslint-disable */屏蔽校验,两处报错都会自动消失。
内容的提问来源于stack exchange,提问作者babukuinha
相关产品推荐
相关产品推荐

