在本地

时间:2016-09-06 09:45:57

标签: javascript react-native redux asyncstorage

我注意到我浪费了一定的时间调试 redux 操作,我坚持{strong}反应原生 AsyncStorage感谢{{3 }}。有时我只想擦除AsyncStorage以节省一些开发时间并尝试使用新数据。

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

由于

5 个答案:

答案 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();