CodeflowAsyncStorage.getItem возвращает неопределенное значение: Реагировать Native
это-Я проверяю, если запись называется ListObject существует в AsyncStorage.
Если этого не существует, создайте объект, добавьте несколько атрибутов и установите хранилище. Я получаю магазин до obj, так как мне нужно сравнить в следующем если состояние.
Если запись listobject уже существует (второй раз), то она непосредственно поступает во 2-й блок и сравнивается. (Причина я получаю значения в OBJ в 1-ом этапе, потому что я могу иметь общую 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();
У меня есть 2 вопроса которые являются результатом одного и того же проблемный
- Logs. Я устанавливаю obj1 и получить такое же значение для OBJ (так что я могу сравнить следующий, если условие). Почему я не в состоянии получить такое же значение, что у меня есть комплект?
12-03 00: 27: 56.281 32598-487/com.abc D/ReactNativeJS: 'obj1 = { "данные": { "isdirty": истинно}}'
12- 03 00: 27: 56.286 32598-487/com.abc D/ReactNativeJS: 'obj = {"_37": 0, "_ 12": null, "_ 59": []}'
- Это конечный результат приведенных выше журналов. Я получаю, что list.data.isdirty не определено. Я предполагаю, что поскольку формат JSON, к которому я обращаюсь, не существует в obj i.e, obj.data.isdirty не существует. Итак, как мне это преодолеть?
неопределенный не является объект (оценка 'list.data.isdirty');
Скажите, пожалуйста, что я делаю неправильно?
Возврат obj является строкой, поэтому вам необходимо применить JSON.parse к ней до второго, если. – ivillamil
Я тоже пробовал, что он не работает. – bozzmob