[英]And with an Or conditional statement in react / javascript
我试图根据几个条件禁用按钮。
<Button disabled={((myobject && myobject.name === "bob") || user.registered) ? true : false} >my button</Button>
本质上,如果myobject.name
是“bob”或者用户已注册(例如 user.registered 不为零),我想禁用该按钮。 就目前而言,如果myobject.name
是“bob”,按钮似乎会被禁用,但它似乎忽略了user.registered
。 我究竟做错了什么?
非常感谢!
您可以通过可选链接和省略三元来简化您的代码,因为它在这里是多余的:
<Button disabled={myobject?.name === "bob" || user.registered}>my button</Button>
在按钮标签内,您可以尝试仅使用您想要施加的两个约束(虽然我不明白为什么在开始时使用 myobject)。 它可能类似于以下内容:
(myobject.name === "bob" || user.registered) ? true : false
看起来您可能非常接近,您拥有的代码应该可以正常工作。 我会确保检查两件事。 确保 user.registered 具有“真实”值。
如果它是一个字符串或一个数字,它可能会在您不期望的地方评估为 false。 在 Javascript 0
undefined
null
""
(empty string) 和NaN
都被评估为false
您还应该确保在某处定义了 myobject。 如果 myobject 从未被声明,您仍然会收到引用错误。 如果 myobject 是那些评估为 false 的值中的任何一个并且user.registered == true
那么你的代码应该做我认为你想要完成的事情。 如果不是,您可能需要更详细地说明您期望发生的事情以及要查看的一些示例值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.