Abdelrahman Mostafa10 نشر 22 يناير أرسل تقرير نشر 22 يناير لقد حاولت إنشاء أداة تبديل الثيم theme switcher في Next.js، حيث يتغير الثيم عندما أنقر على زر، ولكن يظهر خطأ عند النقر على الزر ولم أجد حلاً لتلك المشكلة. وذلك هو الكود: // eslint-disable-next-line react-hooks/rules-of-hooks const [Theme, setTheme] = useState("light"); function themeSwitcher() { if (Theme === "light") { setTheme("dark"); console.log(Theme); Router.push({ pathname: "/layout", query: Theme, }); } else { setTheme("light"); console.log(Theme); Router.push({ pathname: "/layout", query: Theme, }); } } return ( <div> <button onClick={themeSwitcher}>light/dark</button> </div> ); وتلك هي المشكلة التي تظهر لي: اقتباس
0 El Sayed El Tohamy نشر 22 يناير أرسل تقرير نشر 22 يناير الخطأ ينبهك أنك تحاول استخدام next/router في جهة الخادم server-side. السبب أن جهة الخادم server-side عبارة عن بيئة تطوير تستخدم إطار عمل Next.js وهذا الإطار لا يدعم Router لأنه يخص المتصفح، حاول تجربة الشيفرات التالية: import React, { useEffect } from "react"; import { useRouter } from "next/router"; const [Theme, setTheme] = useState("light"); function themeSwitcher() { const router = useRouter(); useEffect(() => { if (Theme === "light") { setTheme("dark"); console.log(Theme); router.push({ pathname: "/layout", query: Theme, }); } else { setTheme("light"); console.log(Theme); router.push({ pathname: "/layout", query: Theme, }); } //لاحظ أن الخطاف سيعتمد على قيمة الكائن // Theme }, [Theme]); } return ( <div> <button onClick={themeSwitcher}>light/dark</button> </div> ); اقتباس
السؤال
Abdelrahman Mostafa10
لقد حاولت إنشاء أداة تبديل الثيم theme switcher في Next.js، حيث يتغير الثيم عندما أنقر على زر، ولكن يظهر خطأ عند النقر على الزر ولم أجد حلاً لتلك المشكلة.
وذلك هو الكود:
وتلك هي المشكلة التي تظهر لي:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.