我目前正在构建一个使用异步存储的React Native应用。我在组件中有条件,可以决定是否向API发出请求或使用存储在内存中的数据。因此,要测试这些条件,我通常必须使用AsyncStorage.clear()
清除AsyncStorage。
如果我将其包含在一个组件中,则此方法有效,但是将其包含在单独的脚本中会更实际-这使我想到了我的问题:
我想要一个如下脚本:
import AsyncStorage from '@react-native-community/async-storage';
AsyncStorage.clear();
console.log('STORAGE CLEARED');
,然后使用诸如node clearStorage.js
之类的命令(以及后来的npm脚本)运行它。
但是我收到一条错误消息:“无法在模块外部使用import语句”。
我错过了任何明显的东西/试图做我不应该做的事情吗?我尝试将文件类型更改为.mjs
,但是没有运气。
答案 0 :(得分:0)
如果需要执行此操作,则不能使用nodejs脚本,因为该节点脚本永远都不会到达本机端,因为async-storage是本机库,它直接连接到Android或IOS。
另一种解决方案可能是在应用程序的开头,您可以运行该代码,或者仅在开发人员模式下单击清理数据时创建一个按钮。
和错误“无法在模块外部使用import语句”。这是因为nodeJ不了解语法import AsyncStorage from '@react-native-community/async-storage';
,因此需要像babel这样的编译器。