在 React 中切换暗模式和亮模式
Switching between Dark and Light Mode in React
我在 React 中使用 useDarkMode
库。
import useDarkMode from 'use-dark-mode'
const DarkModeToggle = () => {
const darkMode = useDarkMode(false)
return (
<>
{darkMode ? (
<button type="button" onClick={darkMode.disable}>
☀
</button>
) : (
<button type="button" onClick={darkMode.enable}>
☾
</button>
)}
</>
)
}
我想要按钮可以在太阳和月亮之间切换,并且能够在暗模式和亮模式之间切换。我似乎无法弄清楚如何做到这一点,我也尝试过使用钩子,但没有成功。
根据文档 useDarkMode()
returns 具有 value
:
属性的对象
value
: A boolean containing the current state of dark mode.
所以您很可能可以尝试以下操作:
{darkMode.value ? (
<button type="button" onClick={darkMode.disable}>
☀
</button>
) : (
<button type="button" onClick={darkMode.enable}>
☾
</button>
)}
希望对您有所帮助!
如果@norbitrial 的答案被证明是正确的,您可能还有一种缩短代码以提高其可读性的方法:
<button type='button' onClick={darkMode.value ? darkMode.disable : darkMode.enable}>
{darkMode.value ? '☀' : '☾' }
</button>
更进一步:
const DarkModeToggle = () => {
const { value, disable, enable } = useDarkMode(false)
return (
<button type='button' onClick={value ? disable : enable}>
{value ? '☀' : '☾'}
</button>
)
}
图书馆似乎还提供了 toggle
function,不再需要 enable
或 disable
,现在您对两者使用相同的按钮:
const DarkModeToggle = () => {
const { value, toggle } = useDarkMode(false)
return (
<button type='button' onClick={toggle}>
{value ? '☀' : '☾'}
</button>
)
}
我在 React 中使用 useDarkMode
库。
import useDarkMode from 'use-dark-mode'
const DarkModeToggle = () => {
const darkMode = useDarkMode(false)
return (
<>
{darkMode ? (
<button type="button" onClick={darkMode.disable}>
☀
</button>
) : (
<button type="button" onClick={darkMode.enable}>
☾
</button>
)}
</>
)
}
我想要按钮可以在太阳和月亮之间切换,并且能够在暗模式和亮模式之间切换。我似乎无法弄清楚如何做到这一点,我也尝试过使用钩子,但没有成功。
根据文档 useDarkMode()
returns 具有 value
:
value
: A boolean containing the current state of dark mode.
所以您很可能可以尝试以下操作:
{darkMode.value ? (
<button type="button" onClick={darkMode.disable}>
☀
</button>
) : (
<button type="button" onClick={darkMode.enable}>
☾
</button>
)}
希望对您有所帮助!
如果@norbitrial 的答案被证明是正确的,您可能还有一种缩短代码以提高其可读性的方法:
<button type='button' onClick={darkMode.value ? darkMode.disable : darkMode.enable}>
{darkMode.value ? '☀' : '☾' }
</button>
更进一步:
const DarkModeToggle = () => {
const { value, disable, enable } = useDarkMode(false)
return (
<button type='button' onClick={value ? disable : enable}>
{value ? '☀' : '☾'}
</button>
)
}
图书馆似乎还提供了 toggle
function,不再需要 enable
或 disable
,现在您对两者使用相同的按钮:
const DarkModeToggle = () => {
const { value, toggle } = useDarkMode(false)
return (
<button type='button' onClick={toggle}>
{value ? '☀' : '☾'}
</button>
)
}