React-Native:在项目或这些目录中找不到 React

IT技术 ios objective-c reactjs xcode react-native
2021-05-12 23:18:11

我们已经使用 react (16.9.0) 将我们的 react native 项目升级到了最新的 react native 版本 (v0.61.2),它在 android 上运行良好。当我们尝试在 ios think 上运行它时,我们得到消息:

warning: the transform cache was reset. Loading dependency graph, done. error: bundling failed: Error: Unable to resolve module `React` from `ios/Pods/React/Libraries/react-native/react-native.js`: React could not be found within the project or in these directories:   node_modules

If you are sure the module exists, try these steps:
 1. Clear watchman watches: watchman watch-del-all
 2. Delete node_modules: rm -rf node_modules and run yarn install
 3. Reset Metro's cache: yarn start --reset-cache
 4. Remove the cache: rm -rf /tmp/metro-*

我们遵循了升级指南,将所有依赖项更新到了最新版本并更新了 pod。我实际上不知道从哪里或如何开始调试它,因为这似乎来自 Pods 文件夹。

这是我们 Pods 文件夹的内容:

ls ios/Pods/
Adjust              GoogleDataTransport
Crashlytics         GoogleDataTransportCCTSupport
DoubleConversion        GoogleUtilities
Fabric              Headers
Firebase            Local Podspecs
FirebaseABTesting       Manifest.lock
FirebaseAnalytics       Pods.xcodeproj
FirebaseAnalyticsInterop    Protobuf
FirebaseCore            Pushwoosh
FirebaseCoreDiagnostics     PushwooshInboxUI
FirebaseCoreDiagnosticsInterop  React
FirebaseDynamicLinks        Target Support Files
FirebaseInstanceID      boost-for-react-native
FirebaseRemoteConfig        glog
Folly               nanopb
GoogleAppMeasurement

在我们的 node_modules 文件夹中,我们有(还有更多其他包):

...
react
depd                        react-deep-force-update
des.js                      react-devtools-core
destroy                     react-is
detect-libc                 react-lifecycles-compat
detect-newline              react-native
...

当然,我已经尝试了所有步骤,例如清除缓存、重置缓存、清除派生数据、清理和构建……我不知道从哪里开始寻找。

4个回答

我通过更换来修复它

import Foobar from "screens/foobar";

import Foobar from "./screens/foobar";

注意./路径的开头

从 v0.60.3 升级到 v0.61.4 时,我遇到了同样的错误。

我需要改变

import React, { Component } from 'React';

import React, { Component } from 'react';

注意小写的“r”。

尝试删除目录下的Pod folder然后再次运行Podfile.lockiospod install

那对我有用。

我知道这不是最佳解决方案,但是我花了一个多星期的时间来解决这个问题,但无济于事。最后我生成了一个新的 RN 项目,复制到我的 app 文件夹并重新安装了我使用的大约 20 个包,然后复制了我的旧 App.js、index.js、AndroidManifest、Appdelegate.m、Info.plist、build.gradle x 2、图标和 XIB,以及一些module的其他安装说明,即 FBSDK 和 Firebase。现在一切正常。似乎在将所有这些文件更新为从 <0.60 到 >0.60 的手动过程中的某些事情会导致某些问题。请注意,此娱乐活动耗时约 8 小时。