【问题标题】:AsyncStorage.multiRemove Not working On logout. in react nativeAsyncStorage.multiRemove 注销时不起作用。在本机反应
【发布时间】:2021-06-16 12:48:28
【问题描述】:

我正在尝试清除除“read1”、“read2”之外的所有 AsyncStore。但是当我按注销然后再次打开应用程序时。我没有得到登录屏幕。我直接重定向到第二个屏幕。但是我删除了除某些之外的所有项目。所以我认为我犯了一些错误或 multiRemove 不起作用。请帮忙。

这是我如何使用 multiRemove

 onPress: () => {
                    AsyncStorage.multiRemove(
                      "id",
                      "doctor_id",
                      "created_time",
                      "is_profile_completed",
                      "otp",
                      "otp_valid_till",
                      "nature",
                      "login_as",
                      "user_name",
                      "read2"
                    );
                       BackHandler.exitApp();
                    
                  },

我添加了那个read2来检查它是否清除,但它不清除。

【问题讨论】:

    标签: javascript react-native asyncstorage


    【解决方案1】:
    AsyncStorage.getAllKeys()
            .then(keys => AsyncStorage.multiRemove(keys))
            .then(() =>  BackHandler.exitApp(); );
    

    异步存储以异步方式工作,因此您必须等待工作完成然后退出应用程序。最终你必须等待承诺得到解决,然后在异步工作成功完成时将你的工作添加到然后阻塞

    【讨论】:

    • 它说的回调不是一个函数。 (在'callback(err, keys)'中,'callback'是"id")
    • 可能的未处理承诺拒绝(id:0):TypeError:keys.forEach 不是函数。 (在 'keys.forEach(function (key) { return checkValidInput(key); })' 中,'keys.forEach' 未定义)
    • 请您在操场或博览会小吃上分享您的代码,以便我可以很好地了解您正在尝试使用代码做什么?好吧 key.forEach 键不是一个数组,这就是为什么它向您显示 key.forEach 不是一个函数。 AsyncStorage.getAllkeys() 将为您提供 Asyncstorage 中的所有密钥,然后在 multiRemove 上传递这些密钥。
    猜你喜欢
    • 1970-01-01
    • 2016-07-20
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多