You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native 0.60.5调用useColorScheme报is not a function如何解决

报错根因

TypeError: (0, _reactNative.useColorScheme) is not a function

该报错的核心原因是:useColorScheme Hook 是 React Native 0.62 版本才正式纳入核心包的官方API,你当前使用的0.60.5版本核心库并未内置该方法,直接从react-native导入调用自然会触发未定义报错。

解决方案

方案1:升级React Native版本(最优解)

  • 如果项目允许做版本迭代,将React Native升级到0.62.0及以上的稳定版本,升级完成后就可以直接使用原有写法,不需要额外改动
// 0.62+版本直接从react-native导入即可正常使用
import { useColorScheme } from 'react-native';
const colorScheme = useColorScheme();

方案2:低版本兼容方案(不升级RN版本)

使用官方维护的社区兼容包react-native-appearance实现完全相同的能力,操作步骤如下:

  1. 安装依赖包
npm install react-native-appearance
# 若使用yarn则执行:yarn add react-native-appearance
  1. 完成原生依赖关联
    0.60+版本支持自动链接,iOS端额外执行一次Pod安装即可:
cd ios && pod install && cd ..
  1. 基础配置适配
  • iOS端:在项目ios/项目名/Info.plist中添加深色模式支持声明
<key>UIUserInterfaceStyle</key>
<string>Automatic</string>
  • Android端:将android/app/src/main/res/values/styles.xml中的App主题父类改为Theme.AppCompat.DayNight.NoActionBar
  1. 代码替换原有导入
    将原本从react-native导入useColorScheme的逻辑改为从兼容包导入即可,其余使用逻辑完全一致:
import { useColorScheme } from 'react-native-appearance';
const colorScheme = useColorScheme();

方案3:极简兜底方案(不需要动态跟随系统配色)

如果项目不需要适配系统深色/浅色模式切换,只是要快速解决报错问题,可以临时写一个自定义Hook兜底:

// 自定义兜底useColorScheme,默认返回light
const useColorScheme = () => 'light';
const colorScheme = useColorScheme();

内容的提问来源于stack exchange,提问作者ramesh m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:15:03