web-dev-qa-db-fra.com

NativeModule: AsyncStorage est null, avec @ RNC / AsyncStorage

Je travaille sur un React projet natif créé avec Expo. J'utilise régulièrement l'ancien AsyncStorage, en important depuis react-native, et tout s'est bien passé.

En recherchant comment se moquer de AsyncStorage pour les tests, j'ai vu que react-native-community/react-native-async-storage a sa propre maquette intégrée.

J'ai donc installé le plugin de communauté avec yarn add et désactivé toutes mes instructions d'importation.

Lorsque j'exécute mon application, j'obtiens une erreur (que je retape moi-même, excusez quelques ellipses):

[@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...

J'ai donc essayé d'exécuter react-native link @react-native-community/async-storage mais je reçois toujours cette erreur:

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

Certaines recherches m'ont montré que les applications Expo ne peuvent pas (et n'ont pas besoin) de se lier.

J'ai essayé npm start --clearCache en vain.

De plus, je n'ai pas de dossier ios (ou Android) dans mon projet. Cela a toujours été un peu déroutant pour moi car je le vois référencé partout. Je lance mon application dans le simulateur/émulateur (et l'appareil) via l'application Expo. Une fois, j'ai essayé de m'éjecter et il y a eu des problèmes. Donc, je n'ai pas de dossier ios.

(Je vais recommencer à utiliser l'ancien AsyncStorage natif de react-native et créer moi-même une maquette, mais j'aimerais savoir comment résoudre ce problème et les problèmes similaires qui pourraient survenir à l'avenir.)

12
Jonathan Tuzman

Fermez simplement le bundle Metro et exécutez react-native run-Android or run-ios et il sera corrigé.

0
vanskins