[英]React: setting state of button to disabled makes it impossible to tick checkboxes
[英]React - setting disabled state on a button
尝试在按钮上设置禁用 state 时检查某个条件是否为真的正确方法是什么?
我已经尝试了下面的代码,但我得到了一个错误。
第 237:23 行:在条件表达式 no-unneeded-ternary 中不必要地使用 boolean 文字
<Button
variant="contained"
className="global-button"
disableElevation
disabled={!brush_logs_list.length ? true : false}
onClick={applyForEntireMouth}>
APPLY FOR ENTIRE MOUTH
</Button>
请像这样尝试;
<Button
variant="contained"
className="global-button"
disableElevation
// disabled={!brush_logs_list.length ? true : false}
disabled={!brush_logs_list.length} // instead of above line
onClick={applyForEntireMouth}
>
APPLY FOR ENTIRE MOUTH
</Button>
实际上, .brush_logs_list.length
的类型已经是boolean
,所以你不需要? :
? :
运营商。 只需使用.brush_logs_list.length
就足够了。
Bikas Lin 的回答是正确的。 为了清楚起见,让我稍微扩展一下。 禁用标志仅接受 boolean。 使用.length 进行检查时,0(空)将返回 false,其他任何内容都将返回 true。 因此根本不需要三元运算符,因为 .length 完全返回您需要的内容。
有多种方法可以围绕此 go。 假设会有多种可能性,例如,如果 the.length 超过给定数量等。在这种情况下,您想定义一个 function,例如“handleDisabled”并在那里验证。 对于这些情况,switch 是一个好方法/选项(没有双关语)。
使用disabled={.!!brush_logs_list.length}
你可以这样尝试
<Button
variant="contained"
className="global-button"
disableElevation
disabled={(brush_logs_list || []).length}
onClick={applyForEntireMouth}>
APPLY FOR ENTIRE MOUTH
</Button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.