错误:无法解析模块@react-native-community/async-storage IOS

问题描述 投票:0回答:4

我正在尝试在我的 IOS 设备中运行我的 React Native 项目。我使用

npx react-native start
启动我的服务器,然后使用 Xcode 启动我的应用程序。我收到此错误:

error: Error: Unable to resolve module @react-native-community/async-storage from /Users/nicolelopez/dev/LeksPlay/src/Core/onboarding/utils/AuthDeviceStorage.js: @react-native-community/async-storage could not be found within the project or in these directories:
  node_modules
  ../../node_modules

If you are sure the module exists, try these steps:
 1. Clear watchman watches: watchman watch-del-all
 2. Delete node_modules and run yarn install
 3. Reset Metro's cache: yarn start --reset-cache
 4. Remove the cache: rm -rf /tmp/metro-*
> 1 | import AsyncStorage from '@react-native-community/async-storage'
    |                           ^
  2 |
  3 | const SHOULD_SHOW_ONBOARDING_FLOW = 'SHOULD_SHOW_ONBOARDING_FLOW'

我尝试过的:

  1. 我已按照错误消息中收到的命令进行操作:
 1. Clear watchman watches: watchman watch-del-all
 2. Delete node_modules and run yarn install
 3. Reset Metro's cache: yarn start --reset-cache
 4. Remove the cache: rm -rf /tmp/metro-*
  1. 我已经删除了node_modules和我的package.lock.json并重新安装了yarn并完成了pod安装。

  2. 我已尝试重新启动计算机

  3. 我尝试过做一个

    yarn add @react-native-community/async-storage

  4. 我在节点 14 上运行 - 因为我在更高版本的节点上遇到了类似的问题。

  5. 我正在 Rosetta 模式下运行 Xcode - 因为我使用的是 Mac M1。

  6. 我尝试将 AsyncStorage 导入更改为

    import AsyncStorage from '@react-native-async-storage/async-storage';

  7. 我也尝试添加

    pod 'RNCAsyncStorage', :path => '../node_modules/@react-native-community/async-storage'

但它们都会导致同样的问题 - 这是我发布的错误代码。无论我尝试什么,结果都没有什么不同。我对原生反应真的很陌生,这可能是一个常见问题,但我似乎找不到任何有帮助的东西。

javascript reactjs react-native react-redux react-hooks
4个回答
2
投票

您应该使用名为

@react-native-async-storage/async-storage
的正确软件包。

您正在使用的版本已已弃用,请在以下位置查看:https://www.npmjs.com/package/@react-native-community/async-storage

deprecated @react-native-community/async-storage

两者同时存在会导致问题。

如果问题仍然存在,请尝试清除所有缓存,有一个很好的工具可以帮助您清理 React Native 项目:https://github.com/taboulot/rn-game-over

npx rn-game-over --all

如果您之后仍有问题,请使用新的详细信息更新您的问题。


1
投票

使用文档来看,您似乎错误地导入了异步存储。您应该从

@react-native-async-storage
而不是从
@react-native-community
导入。此外,您似乎混淆了这两个包。确保您也已完成相关的安装步骤

安装正确的软件包:

yarn add @react-native-async-storage/async-storage

并导入异步存储:

import AsyncStorage from '@react-native-async-storage/async-storage';

1
投票

正如文档中所写,它没有使用@react-native-comunity。这意味着你应该安装react-native-async-storage:

npm install @react-native-async-storage/async-storage

yarn add @react-native-async-storage/async-storage

而不是

npm install @react-native-community/async-storage

如果您在使用该软件包时遇到问题或错误, 这是我在项目中尝试解决问题的代码:

rm -rf $TMPDIR/metro-* && rm -rf $TMPDIR/haste-* && watchman watch-del-all && yarn cache clean --force && rm -rf ios/build && rm -rf node_modules/

我从这里得到了解决方案https://stackoverflow.com/a/67865721/8367675


0
投票

这里是 2024 年 12 月安装异步存储的更新代码 npm install @react-native-async-storage/async-storage

并导入 从'@react-native-async-storage/async-storage'导入AsyncStorage;

为我工作。希望它也适合你

© www.soinside.com 2019 - 2024. All rights reserved.