AsyncStorage.getItem 返回未定义:React Native

2023-12-04

代码流程是-

我正在检查是否有一个名为列表对象存在于异步存储中。

  1. 如果它不存在,那么我创建一个对象,添加一些属性并设置存储。我让商店obj因为我接下来要比较if健康)状况。

  2. If the 列表对象条目已经存在(第2次),则直接来到第2个块,进行比较。 (我在第一步中获取 obj 值的原因是因为我可以有一个共同的obj.data.isdirty健康)状况。

这是我的代码-

AsyncStorage.getItem('listobject').then((obj) => {
    if(obj == undefined)
    {
        var obj1 ={};
        obj1.data ={};
        obj1.data.isdirty = true;
        console.log("obj1 = "+ JSON.stringify(obj1));
        AsyncStorage.setItem('listobject',obj1);
        obj = AsyncStorage.getItem('listobject');
        console.log("obj = "+ JSON.stringify(obj));
    }
    if(obj.data.isdirty)
    {
        obj.data.isdirty = false;
        AsyncStorage.setItem('listobject',JSON.stringify(obj));
        return AsyncStorage.getItem('listobject');
    }
}).done();

我有两个问题,它们是同一问题的结果 -

  1. 日志。我正在设置 obj1 并为 obj 获取相同的值(以便我可以比较下一个 if 条件)。为什么我不能get与我拥有相同的价值set?

12-03 00:27:56.281 32598-487/com.abc D/ReactNativeJS: 'obj1 = {"data":{"isdirty":true}}'

12-03 00:27:56.286 32598-487/com.abc D/ReactNativeJS: 'obj = {"_37":0,"_12":null,"_59":[]}'

  1. 这就是上述日志的最终结果。我发现 list.data.isdirty 未定义。我猜想是因为我正在访问的 JSON 格式不存在于obj即 obj.data.isdirty 不存在。那么,我该如何克服这个问题呢?

undefined 不是一个对象(评估 'list.data.isdirty');

请告诉我我做错了什么?


我实际上将对象从一个对象复制到另一个对象。有效。

AsyncStorage.getItem('listobject').then((obj) => {
    if(obj == undefined)
    {
        var obj1 ={};
        obj1.data ={};
        obj1.data.isdirty = true;
        console.log("obj1 = "+ JSON.stringify(obj1));
        AsyncStorage.setItem('listobject',obj1);
        obj = obj1; //THIS IS WHAT I DID!
        console.log("obj = "+ JSON.stringify(obj));
    }
    if(obj.data.isdirty)
    {
        obj.data.isdirty = false;
        AsyncStorage.setItem('listobject',JSON.stringify(obj));
        return AsyncStorage.getItem('listobject');
    }
}).done();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AsyncStorage.getItem 返回未定义:React Native 的相关文章

随机推荐