React 運用邏輯運算子解決 JSX 問題
在 React 前一個筆記中,有試著做出一個 Counter,並且有加入判斷條件:如果數字為 0 的話,就沒辦法繼續按減號。還有另一種作法是:如果數字為 0 的話,減號按鈕就消失不能按,不過實做的話,會出現一些問題,這篇來看看需要解決什麼問題。
JSX 不能使用陳述式
設定數字大於 0,減號顯示,按照邏輯可能會這樣寫:
1 | const Count = () => { |
但是這樣做會違反 JSX 的規則,也就是 JSX 只能使用表達式,不能使用陳述式。
如果要解決這個問題的話,可以使用邏輯運算子。
什麼是邏輯運算子?
根據 MDN 官網解釋,邏輯運算子通常被用於布林值的判斷,使用的符號有 &&
、||
、!
,要注意的是在判斷會自動轉型,例如 null、0、undefined、NaN、空字串,都會被轉換成 false,看以下例子:
1 | // 假設兩個都是 true 的話,就回傳後面的值;如果不是就回傳 false 的那一個值 |
1 | // 假設兩個都是 true 的話,就回傳前面的值;如果不是就回傳 true 的那一個值 |
1 | // 判斷 ! 後面的值是 true 的話,回傳 false,反之回傳 true |
運用邏輯運算子來編譯畫面
前面提到設定數字大於 0,減號顯示,這邊再加上如果數字小於 10 的話,加號才能顯示,所以可以這樣寫:
1 | // 當 count >= 10,就顯示加號 |
下面是完整的 CodePen,可以玩玩看:
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Bucky's Code Journey!