【问题标题】: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 上进行测试,并启用了深色主题。

有什么想法吗?

【问题讨论】:

    标签: javascript ios react-native expo


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多