簡體   English   中英

三元語句中的代碼不止一行?

[英]More than one line of code in ternary statement?

:之后是否可以有多個“代碼行”? 目前, clearNameInputRef.current.style.display = "none"; 無論如何都在運行,但它應該只在searchName == "" /if searchName != ""false時運行

searchName != "" ? fetchClassesByName() : nameDropdownRef.current.style.display = "none"; clearNameInputRef.current.style.display = "none";

是的,您可以在?之后添加換行符:對於代碼行

不,您不能在“ :塊”內有多個表達式

目前...正在運行,不管

因為分號結束了三進制和 else 表達式。

您需要在 else 部分使用單個表達式,例如方法。

searchName != "" ? fetchClassesByName() : ClearStyles(nameDropdownRef.current.style, clearNameInputRef.current.style);

...

private void ClearStyles(... s1 , ... s2) {  // Not sure what types these are
    s1.display = "none"; 
    s2.display = "none";
}

但是,三元組旨在返回一個條件值,而不是有條件地運行兩個方法,因此請使用實際的 if-else。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM