web-dev-qa-db-ja.com

NativeModule:AsyncStorageがnullで、@ RNC / AsyncStorage

私はReact Expoで作成されたネイティブプロジェクトに取り組んでいます。私はreact-nativeからインポートした通常の古いAsyncStorageを使用しており、すべて順調です。

テストのためにAsyncStorageをモックする方法を調べたところ、react-native-community/react-native-async-storageには独自のモックが組み込まれていることがわかりました。

コミュニティプラグインをyarn addでインストールし、すべてのインポートステートメントを切り替えました。

アプリを実行すると、エラーが発生します(自分で入力し直しています。省略記号がいくつかあります)。

[@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.

To fix this issue try these steps:

-Run `react-native link @react-native-community/async-storage` in the project root.
-Rebuild and restart the app
-Run the packager with `--clearCache` flag.
-If you are using CocoaPods on iOS...
-If this happens while testing with Jest...

だから私はreact-native link @react-native-community/async-storageを実行してみましたが、このエラーが発生し続けます:

Something went wrong while linking. Error: Cannot read property 'pbxprojPath' of null

いくつかの調査から、Expoアプリはリンクできない(そしてリンクする必要がない)ことがわかりました。

npm start --clearCacheを試しても無駄になりました。

また、プロジェクトにios(またはAndroid)フォルダーがありません。あちこちで参照されているのを見ると、これは常に私にとって混乱の種でした。 Expoアプリを介してシミュレーター/エミュレーター(およびデバイス)でアプリを実行します。一度イジェクトしてみたところ問題がありました。そのため、iosフォルダーはありません。

react-nativeからの古いネイティブAsyncStorageを使用してモックを作成することに戻りますが、これを解決する方法、および将来発生する可能性のある同様の問題について知りたいのですが。)

12
Jonathan Tuzman

Metroバンドラーを閉じてreact-native run-Android or run-iosを実行するだけで修正されます。

0
vanskins