多条件渲染异常:TODO列表优先级始终显示Low,求问题排查
问题排查:TODO列表优先级始终显示Low的原因及修复方法
以下是几个可能导致优先级始终显示Low的原因及对应的修复方案:
数据类型不匹配:严格相等运算符
===要求值和类型完全匹配。如果value.priority实际是字符串类型(比如后端返回的"1"、"2"),而你用数字1、2去比较,就会匹配失败,最终走到默认的Low分支。- 修复方案:要么改用宽松相等
==,要么将比较值转为字符串,比如value.priority === "1"。
- 修复方案:要么改用宽松相等
数据未正确赋值:确认
value.priority是否真的被设置为1或2。可以在组件里添加console.log(value.priority),查看实际渲染时这个字段的取值——可能是初始值未正确设置,或者数据字段名有误(比如实际是priorityLevel而非priority)。拼写小问题:代码里的
hight是拼写错误,应该是High,这个不影响逻辑,但会导致显示文本错误,建议修正。
修复后的参考代码(数字类型匹配场景):
<p className="text-todo italic"> Priority: {value.priority === 1 ? ( <span>High</span> ) : value.priority === 2 ? ( <span>Medium</span> ) : ( <span>Low</span> )} </p>
如果value.priority是字符串类型,代码调整为:
<p className="text-todo italic"> Priority: {value.priority === "1" ? ( <span>High</span> ) : value.priority === "2" ? ( <span>Medium</span> ) : ( <span>Low</span> )} </p>
内容的提问来源于stack exchange,提问作者Elio
相关产品推荐
相关产品推荐

