在反应原生中擦除AsyncStorage

jsd*_*rio 24 javascript react-native redux asyncstorage

我注意到,我在浪费时间调试一定量的终极版,我坚持到行动AsyncStorage反应母语感谢终极版-坚持.有时我只想擦除AsyncStorage以节省一些开发时间并尝试使用新数据.

编辑:最好的解决方案应该适用于模拟器和真实设备,iOS和Android.也许不同的平台有不同的工作方式.

谢谢

Ton*_*ent 21

尝试使用clear()函数删除AsyncStorage所有客户端,库等


Ali*_*ter 14

您可以轻松清除 AsyncStorage,而无需接触源代码。使用本机调试器;并在 devtools 控制台类型中

$reactNative.AsyncStorage.clear();
Run Code Online (Sandbox Code Playgroud)

或者在 RN 的普通调试器中调用它,clear()你可以把它放在......

if (__DEV__) {
   global.clear = () => {
     AsyncStorage.clear().then(() => console.log('Cleared'))
   }
}
Run Code Online (Sandbox Code Playgroud)


hza*_*zak 12

clearAsyncStorage = async() => {
    AsyncStorage.clear();
}
Run Code Online (Sandbox Code Playgroud)

可以在代码库中的任何位置应用此功能来清除AsyncStorage。例如,这是如何在<Button>组件上调用它。

<Button onPress={this.clearAsyncStorage}>
  <Text>Clear Async Storage</Text>
</Button>
Run Code Online (Sandbox Code Playgroud)

  • 我只是认为对于一个新手开发人员来说,准备一个清除AsyncStorage的就绪函数可能有用。对于更有经验的开发人员,阅读以上答案和评论可能就足够了 (2认同)

Tom*_*m A 5

redux-persist带有purge()回调。如果您选择,您可以在调试菜单中的某个位置调用它。


Yos*_*ssi 5

恕我直言,所有关于AsyncStorage.clear()的答案都是错误的,因为正如文档所说:

擦除所有客户端、库等的所有 AsyncStorage。您可能不想调用它;使用 removeItem 或 multiRemove 仅清除应用程序的键。

正确答案可以在这里找到:

这是一个简单的方法:

clearAllData() {
    AsyncStorage.getAllKeys()
        .then(keys => AsyncStorage.multiRemove(keys))
        .then(() => alert('success'));
}
Run Code Online (Sandbox Code Playgroud)