Для чего предназначен AsyncStorage **?

#react-native #asyncstorage #language-concepts

Вопрос:

Я могу найти информацию о том, как писать вызовы в AsyncStorage, как он на самом деле хранит информацию на устройстве и т. Д., А также некоторые основные примеры хранения ключей использования, но то, что я ищу, — это более широкое понимание того, почему я буду его использовать.

Причина, по которой я спрашиваю, заключается в том, что мне недавно пришлось переработать одну область нашего (родного для react) мобильного приложения, которая была ошибочной и-не несвязанной! — стал одним непостижимым зверем. Ранее это был огромный единый класс, и в его компонентеdidmount/unMount были вызовы AsyncStorage, где он хранил некоторые переменные состояния.

(Судя по комментариям, по крайней мере частично причина заключалась в том, что предыдущий разработчик пытался понять, как использовать состояние/доступ в FlatList, но я думаю, что это нечто большее, чем просто это)

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

Но я понимаю, что не использовал никаких вызовов в AsyncStorage, и мне остается только гадать, плохо ли это? Я могу себе представить, что я мог бы занести в AsyncStorage все состояние из этой части приложения, чтобы в случае его сбоя мы могли вернуться в любую точку, до которой добрались. И я полагаю, что это может быть по-своему удобно. Но разумно ли это использовать асинхронное хранилище? Это то, для чего вы все его используете? Был ли предыдущий вариант использования неудачным и должен ли я двигаться дальше без него?

(Я ценю, что этот вопрос является более концептуальным, чем то, что я обычно ищу / спрашиваю, и если мне следует поместить его в другое место, пожалуйста, скажите!)

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

1. AsyncStorage-это разумный способ хранения данных, которые вы хотите сделать доступными от запуска до запуска. Есть и другие решения, которые являются более надежными (например, база данных), но не похоже, что то, что у вас есть, используется именно так.

2. Под «запуском до запуска» вы подразумеваете промежуток между запуском одного приложения и следующим? Мы также используем базу данных (mongo). В этой части приложения отображается набор задач. Мы запрашиваем нашу базу данных, чтобы получить эти задачи, а затем, когда пользователь записывает данные о выполнении задач, мы отправляем данные обратно в базу данных. AsyncStorage, похоже, хранит информацию, связанную с тем, где мы находимся в списке задач.

3. Под запуском от запуска к запуску я подразумеваю, что когда приложение убито (пользователем или системой), оно теряет все состояние в памяти. Когда он запускается снова, он должен откуда-то получить это состояние, если он хочет использовать его снова. AsyncStorage это решение для этого. Похоже, то, что делает ваше приложение, является разумным вариантом использования для этого.