繁体   English   中英

React Native - Expo - 如何检查是否启用了暗模式?

[英]React Native - Expo - How to check if Dark mode is enabled?

我在 Expo/RN 文档中读到过,为了获得系统颜色(深色/浅色),我们应该使用 react native 中的 这个 API

所以,我决定创建我的自定义钩子

import { Appearance } from "react-native";

export default function useIsDarkModeEnabled() {
  return Appearance.getColorScheme() === "dark";
}

但出于某种原因,它总是让我返回错误。 我正在 iOS 14 上进行测试,启用了深色主题。

有任何想法吗?

每当我检查设备的当前外观时,我都会使用 useColorScheme() 函数,而不是 getColorScheme()。

你可以使用 Context 在整个应用程序中持久化它,或者把它放在你的应用程序的根目录,然后将它作为 props 传递给你的组件(不是最好的)。 为了保持主题,您可以使用 AsyncStorage 来存储外观的最后状态。

然后每当应用程序打开时,它将拉取最后一个状态,除非设备从那时起改变了它的外观。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM