#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.