[英]Dark mode defaults back to light mode on reload/navigating to new page
每個人。
我有一個暗模式切換,它似乎工作得很好,只是它在導航到新頁面或刷新時清除了它所在的模式。
我如何確保不會發生這種情況?
import React, { useEffect, useState } from "react"; const useDarkMode = () => { let [theme, setTheme]: any = useState("light"); const colorTheme = theme === "dark" ? "light" : "dark"; useEffect(() => { const root = window.document.documentElement; root.classList.remove(colorTheme); root.style.colorScheme = theme; root.classList.add(theme); }, [theme, colorTheme]); return [colorTheme, setTheme] as const; }; export default useDarkMode;
您可以將模式保存在會話存儲或本地存儲中。 您在開始時檢查您的變量是否已正確初始化,否則您默認設置輕量模式並應用於頁面。 並且當您更改模式時,您不會忘記修改會話存儲或本地存儲中的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.