Я создал способ хранения данных так, как я хочу в AsyncStorage. Это включает в себя:
- Чтение различных входных данных (различных массивов)
- Хранение входных данных в локальном
this.state.object
, который содержит несколько массивов - Stringifying
this.state.object
- Хранение строкового объекта во временном массиве
- Присвоение массива со всеми объектами другому состоянию,
this.state.allObjects
- Stringifying 'this.state.allObjects'
- Хранение строкового массива в AsyncStorage
Конечной целью всего этого является создание массива объектов, каждый из которых представляет очень разные экземпляры одного типа (с разными параметрами et c .). Возможно, это не самый элегантный подход, но, похоже, он отлично хранится и загружается.
Проблема возникает, когда я пытаюсь проанализировать что-либо из this.state.allObjects[x]
. Или, скорее, это происходит только тогда, когда мне нужно получить к нему доступ в случае, который НЕ сразу после загрузки.
Во время моей функции loadFromAsync
я вполне могу выполнить this.state.allObjects = JSON.parse(fromAsync);
, чтобы получить массив строковых объектов и затем var display = JSON.parse(this.state.allObjects[0]).name
для получения имени первого проанализированного объекта массива.
В любое время вне этой функции, когда я пытаюсь вызвать var display = JSON.parse(this.state.allObjects[0]).name
или даже проще <Text>{JSON.parse(this.state.allObjects[0]).name}</Text>
, я получаю следующие ошибки:
const parse = JSON.parse(this.state.allObjects[0]);
//JSON Parse error: Unexpected identifier "undefined"
console.log(parse.name);
const parse = JSON.parse(this.state.allObjects[0]).name;
//JSON Parse error: Unexpected identifier "undefined" + null is not an object (evaluating 'JSON.parse(this.state.allObjects[0]).name
console.log(parse);
const parse = JSON.parse(this.state.allObjects);
//JSON Parse error: Unexpected EOF + JSON Parse error: Unexpected token ','
Я предполагаю, что this.state.allObjects
изменяется где-то в моем коде или добавляет дополнительные }
где-то, хотя это действительно не должно. Когда я отображаю this.state.object
и this.state.allObjects[0]
, их формат визуально одинаков. Добавление большего числа объектов к this.state.allObjects
и отображение каждого строкового компонента также работает; это просто вопрос фактического разбора этих компонентов, которые не работают за пределами исходной функции загрузки.
Я чрезвычайно застрял. Любой совет приветствуется. Если мне нужно изменить свой тип данных, это нормально. Немного раздражает, что мы зашли так далеко со строковым массивом строковых объектов, содержащих массивы, и не смогли разобрать его.