React Native - Expo - 如何检查是不是启用了暗模式?
Posted
技术标签:
【中文标题】React Native - Expo - 如何检查是不是启用了暗模式?【英文标题】:React Native - Expo - How to check if Dark mode is enabled?React Native - Expo - 如何检查是否启用了暗模式? 【发布时间】:2021-11-06 08:57:36 【问题描述】:我已阅读 Expo/RN 文档,为了获得系统颜色(暗/亮),我们应该使用来自 react native 的this API。
所以,我决定创建我的自定义钩子
import Appearance from "react-native";
export default function useIsDarkModeEnabled()
return Appearance.getColorScheme() === "dark";
但由于某种原因,它总是让我返回错误。我正在 ios 14 上进行测试,并启用了深色主题。
有什么想法吗?
【问题讨论】:
【参考方案1】:每当我检查设备的当前外观时,我都会使用 useColorScheme() 函数,而不是 getColorScheme()。
您可以使用 Context 将其保留在整个应用程序中,或者将其放在应用程序的根目录中,并将其作为道具传递给您的组件(不是最好的)。要持久化主题,您可以使用 AsyncStorage 来存储外观的最后状态。
然后,每当应用程序打开时,它都会拉出最后一个状态,除非设备从那时起改变了外观。
【讨论】:
以上是关于React Native - Expo - 如何检查是不是启用了暗模式?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用搜索文本输入(expo、react-native)在屏幕上显示项目
如何在 expo/react-native 应用程序中添加自定义节点模块?
React Native - Expo - 如何检查是不是启用了暗模式?
React Native:如何使用 expo 在 webview 中制作全屏 youtube 嵌入视频(没有 react-native 链接)