一定要加上 use client
,因為 useState 只能在 client component 運作 ,
特別注意,就算這裡加了use client
,所有的子層還是 server component (預設)
加上 provider 之後,下面所有的子層都可以拿到值,不用用 prop 一個一個傳下去
use client
。useContext
時 ( Logo component ),會發生錯誤,因此需要先確認有 context舉例:不是在 provider 裡使用 useContext
現在引入 ThemeContext 和處理錯誤的問題,已經抽離到 custom hook 中
type Theme
可以讓 useState
在 get 和 set 時,可以使用正確的型別,例如:當想要 setTheme('blue')
時,會報錯,因為 type Theme
只有 'dark' 和 'light'
很棒的分享!善用 context 跟 custom hook 的話,可以大幅改善 code quality!
很多 state 可以拆分出來,放到更適合的地方!
期待你分享更多好文章!