我有以下代码,
const Layout: React.FC<LayoutProps> = ({ children }) => {
const darkMode = useRecoilValue(darkModeAtom)
console.log('darkMode: ', darkMode)
return (
<div className={`max-w-6xl mx-auto my-2 ${darkMode ? 'dark' : ''}`}>
<Nav />
{children}
<style jsx global>{`
body {
background-color: ${darkMode ? '#12232e' : '#eefbfb'};
}
`}</style>
</div>
)
}
我正在使用 recoil 和recoil-persist。那么,当darkMode 值为true 时,className 应该包含一个dark 类,对吗?但事实并非如此。我不知道这里有什么问题。但是当我第一次刷新时它不起作用,之后它就可以正常工作了。我也尝试了 darkMode === true 条件,但它仍然不起作用。您会看到样式化的 jsx,效果很好。这会随着 darkMode 值的变化而变化,当我刷新它时,它会保留数据。但是当我检查时,我在第一个 div 中看不到黑暗类。此外,当我 console.log 的 darkMode 值时,我看到了 true,但不包括 dark 类。
这是沙盒链接
也许这是一个愚蠢的错误,但我在这上面浪费了很多时间。那么我在这里做错了什么?