我注意到我浪费了一定的时间调试 redux 操作,我坚持{strong}反应原生 AsyncStorage
感谢{{3 }}。有时我只想擦除AsyncStorage以节省一些开发时间并尝试使用新数据。
编辑:最好的解决方案应该适用于模拟器和真实设备,iOS和Android。也许不同的平台有不同的工作方式。
由于
答案 0 :(得分:18)
尝试使用clear()函数删除所有客户端,库等的所有AsyncStorage
答案 1 :(得分:6)
class A {
...
A(const A& other) : p(nullptr) {
if (other.p){
p = new int(*other.p); // allocate new int and initialize with other's value
}
}
A& operator=(const A& other){
if (p){
// if this is managing a pointer
if (other.p){
// if other is managing a pointer too, just copy value
*p = *other.p;
} else {
// otherwise, since other is null, delete and make this null
delete p;
p = nullptr;
}
} else {
// if this is not managing a pointer
if (other.p){
// other is managing a pointer, time to allocate
p = new int(*other.p);
}
// nothing needs to be done if both are null
}
}
此功能可以在代码库的任何位置应用以清除clearAsyncStorage = async() => {
AsyncStorage.clear();
}
。例如,下面是如何在AsyncStorage
组件上调用它。
<Button>
答案 2 :(得分:4)
redux-persist
附带purge()
回调。如果您愿意,可以在调试菜单中调用它。
答案 3 :(得分:4)
恕我直言,所有关于 AsyncStorage.clear() 的答案都是错误的,因为正如 documentation 所说:
<块引用>擦除所有客户端、库等的所有 AsyncStorage。您可能 不想叫这个;使用 removeItem 或 multiRemove 仅清除 您应用的密钥。
可以找到正确答案here:
<块引用>这是一个简单的方法:
clearAllData() {
AsyncStorage.getAllKeys()
.then(keys => AsyncStorage.multiRemove(keys))
.then(() => alert('success'));
}
答案 4 :(得分:0)
您可以轻松清除AsyncStorage而不用触摸源代码。使用react native debugger;并在devtools控制台中输入
$reactNative.AsyncStorage.clear();