theme-provider.tsx
を
"use client";
import { ThemeProvider as NextThemeProvider } from "next-themes";
import { type ThemeProviderProps } from "next-themes/dist/types";
import { useEffect, useState } from "react";
export const ThemeProvider = ({ children, ...props }: ThemeProviderProps) => {
const [mounted, setMounted] = useState<boolean>(false);
useEffect(() => {
setMounted(true);
return () => setMounted(false);
}, []);
return (
mounted && <NextThemeProvider {...props}>{children}</NextThemeProvider>
);
};
のようにすればよいらしい.このようにしたら治った.
参考
DarkMode切替時でのHydration errorの対応策