>> 發文日期 : 2023/7/26
在Next.js 13裡,Redux-Toolkit的使用方式有些許不同,這裡記錄一下。
這次的範例是建立一個Dark Mode模式的控制,所以我先建立一個slice來管理這個state,並加入一個toggleDarkMode的reducers,用來切換Dark Mode狀態。
這邊可以特別注意一個細節,最上方的"use client",這是因為我們要在client端使用Redux的功能。
接著我們要建立一個store,並將所有的reducers都加入進去。
接著我們要建立一個Redux的Provider,並將store加入進去,並將Layout的children包在Provider裡。
當使用Redux的功能時,必須要在client component中使用,所以在component的拆解上需要特別規劃Redux應用如何與server component分割。
可以看到這邊我們使用了useSelector來取得darkMode的state,使用useDispatch來dispatch,並且使用了toggleDarkMode這個action去買遍state的值。