[新手向] React 常見的 Conditional Rendering 錯誤
在 React 中,條件渲染(Conditional Rendering)是根據狀態或條件來決定是否顯示某些 UI 元素的核心技術。對於新手而言,這個概念看似簡單,但實作時常會遇到一些陷阱。本文將介紹常見的錯誤類型,並提供最佳實踐建議,幫助你寫出更穩定、可讀性更高的程式碼。 常見錯誤一:錯誤地比較字串與布林值 問題描述 當從 sessionStorage 或 localStorage 中取得布林值時,這些值實際上是字串類型(例如 'true' 或 'false' )。若直接將其與布林值比較,會導致條件判斷錯誤。 錯誤範例 即使回傳的是 'false' , Boolean('false') 還是會是 true ,因為非空字串在 JavaScript 中是 truthy。 正確寫法 常見錯誤二:在自訂元件中提前評估 children 問題描述 React 會在渲染父元件時先評估 children ,這會導致即使條件為 false ,仍有程式碼被執行,造成錯誤。 錯誤範例 正確寫法 常見錯誤三:條件渲染語法錯誤 錯誤範例 正確寫法 常見錯誤四:錯誤地使用數字當作布林值渲染 問題描述 React JSX 中 0 不會被當成布林值忽略,而是會直接渲染成字元 0 。 錯誤範例 正確寫法 最佳實踐建議 守衛條件(Guard Clause) :避免巢狀邏輯 將條件放在 map 外層 : 多重條件使用 switch : 總結 條件渲染是 React 開發中不可或缺的一部分,掌握正確的使用方式能避免許多常見錯誤。以下是本文的重點整理: ✅ 明確比較值的類型 :避免將字串與布林值直接比較。 ✅ 避免提前評估 children :使用 Render Props 控制渲染時機。 ✅ 遵守 JSX 語法規則 :條件渲染的表達式要包在合法結構中。 ✅ 數字不是布林值 : 0 在 JSX 中會被渲染出來,要特別處理。 ✅ 使用守衛條件與清晰結構 :讓程式碼更穩定、可維護。 希望這篇文章能幫助你在 React 的條...