在 React 中,我经常只想在条件为真时才渲染某些东西。我曾经这样做过,效果很好:
return {condition?value:null}
实际的返回表达式要复杂得多,所以简单的
if
语句是行不通的。但后来我觉得null
部分很难看,所以我尝试将它包装在一个函数中:
return {addIf(condition, value)}
问题是,有时
value
使用什么条件检查是否可访问。例如,condition
会像 player.hasOwnProperty(x)
和 value
会像 player.x
。这会产生错误。
我认为这是因为价值总是在后者中评估。我怎样才能做到这一点?使用带有
null
的三元表达式是唯一的方法吗?
(我觉得我真正需要的是 Lisp 宏,但希望有更简单的解决方法。)
我认为您可以使用逻辑运算符
&&
。您的解决方案将如下所示:
return condition && value;
它会起作用
返回 {condition?value:null}
实际的返回表达式要复杂得多,所以一个简单的 if 语句是行不通的。但后来我觉得 null 部分很难看,所以我尝试将它包装在一个函数中:
return {addIf(condition, value)}