簡體   English   中英

並在 react / javascript 中使用 Or 條件語句

[英]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.

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