开发者问题收集

无法读取未定义的属性“installCoreFunctions”

2022-01-22
7918

我正在尝试将 Reanimated 2.0 集成到 iOS React Native swift 项目中并出现以下错误。 Android 应用程序运行良好,但无法解决 iOS 问题。

https://docs.swmansion.com/react-native-reanimated/docs/

错误:需要模块“node_modules/react-native-reanimated/src/Animated.js”,引发异常:TypeError:无法读取未定义的属性“installCoreFunctions”,js 引擎:hermes

软件包信息:

"react": "17.0.2",

"react-native": "0.67.0",

"react-native-reanimated": "2.3.1"

Hermes 已启用。

为重新动画设置了 Babel 插件

多次完成 node_module 清除和缓存重置。

3个回答

你还没有完成插件配置,在这种情况下它看起来像是 BABEL 问题

请阅读 => https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation

确保你完成了那里的所有操作,如果你完成了这里的所有操作但仍然不起作用,请尝试

npm:

npm start --reset-cache

yarn:

yarn start --reset-cache

如果仍然......则删除“node_modules”并通过“yarn”或“npm”重新下载它们(如果你在 Mac 上进行 iOS 开发,则必须“cd ios && pod install”)

rm -rf node_modules
Engazan
2022-01-22

您是否已将 Reanimated 的 babel 插件添加到 babel.config.js?如下所示:

  module.exports = {
      ...
      plugins: [
          ...
          'react-native-reanimated/plugin',
      ],
  };

也可能存在权限错误,请尝试运行 chmod +rwx ./node_modules

Ekaansh Arora
2022-02-01

我使用 initWithBundleURL 来初始化 rootView,我将其更改为 initWithBridge ,这有助于我解决问题。

  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self
                                            launchOptions:launchOptions];
  
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"appname"
                                            initialProperties:initialProps ];

您可能必须实现 sourceURLForBridge 这样的操作

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
    return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
}
Suraj M Durgad
2022-11-11