Синтаксический анализ объекта JSON с помощью AsyncStorage

#javascript #react-native #asyncstorage

#javascript #react-native #asyncstorage

Вопрос:

Я в основном пытаюсь написать и прочитать простой объект.

Запись: AsyncStorage.setItem('@Test', JSON.stringify(newStudent)) чтение: console.log(JSON.parse(AsyncStorage.getItem('@Test'))) Но я получаю «Неперехваченную синтаксическую ошибку: неожиданный токен o в JSON в позиции 1».

Я тоже пытался console.log(AsyncStorage.getItem('@Test').ID) , но я получаю «Неопределенный».

Как я могу проанализировать объект?

Комментарии:

1. это связано с тем, что либо сохраненный элемент пуст, либо он не является допустимым json.

Ответ №1:

Есть два способа получить вашу информацию из AsyncStorage

Первый:

 const retriveData = async () => {
    const value = await AsyncStorage.getItem("@Test");
    return JSON.parse(value)
}
  

Затем вы можете просто вызвать функцию и получить значение в переменной

 var test = retrieveData();
  

Второй:

Если вы не хотите использовать асинхронную функцию. Вы можете создать перехват, который хранит, который сохранит значение переменной, а затем обновит значение следующим образом:

 const [testValue, setTestValue] = useState(null);
AsyncStorage.getItem("@Test").then((value) => { setTestValue(value) });
  

Убедитесь, что вы импортируете AsyncStorage таким образом:

 import {AsyncStorage} from "react-native";
  

И не таким образом:

 import AsyncStorage from "react-native";
  

Если вам нужна дополнительная информация об AsyncStorage, ознакомьтесь с документами здесь.

Комментарии:

1. Пакет AsynStorage устарел из react-native. Теперь он является частью сообщества react-native.