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

React Native中Realm的AppProvider报错:Cannot read property 'prototype' of undefined

问题分析与解决方案

出现TypeError: Cannot read property 'prototype' of undefined的核心原因大概率是Realm Provider的嵌套层级错误,或者依赖导入/版本兼容问题,以下是具体修正步骤:

1. 调整Provider嵌套顺序

Realm的AppProvider需要作为应用的顶层Provider,必须包裹在NavigationContainer之外。因为Realm的App实例需要在导航系统初始化前完成创建,否则会导致初始化阶段无法获取有效实例,触发原型未定义的错误。修正后的代码如下:

<AppProvider id={"id"}>
  <NavigationContainer
    ref={navigationRef}
    onReady={() => {
      isReadyRef.current = true;
    }}
    theme={isDarkMode ? DarkTheme : LightTheme}
  >
    <UserProvider fallback={InstallManual}>
      <RealmProvider appId={appId}>
        <Stack.Navigator screenOptions={{ headerShown: false }}>
          <Stack.Screen name={SCREENS.INSTALLMANUAL} component={InstallManual} />
          <Stack.Screen name={SCREENS.FORGET_PASSWORD} component={ForgetPasswordScreen} />
        </Stack.Navigator>
      </RealmProvider>
    </UserProvider>
  </NavigationContainer>
</AppProvider>

2. 验证导入正确性

确保AppProvider是从正确的Realm包导入:

// 正确导入(适用于Realm v10.18+的@realm/react绑定)
import { AppProvider } from '@realm/react';

// 若使用旧版Realm(v10.17及以下),需从realm包导入
import { AppProvider } from 'realm';

3. 检查版本兼容性

确认React Native、Realm、React Navigation的版本匹配:

  • Realm v12+要求React Native >= 0.67.0
  • @realm/react需要搭配对应版本的Realm核心包
    运行以下命令查看依赖版本:
npm list realm @realm/react react-native @react-navigation/native

若版本不兼容,升级或降级到官方推荐的兼容版本组合。

4. 清除缓存

执行Metro缓存重置,避免旧编译文件导致的异常:

npx react-native start --reset-cache

内容的提问来源于stack exchange,提问作者Tanmoy Sarker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:47:37