Обновлять
Когда этот пост был изначально написан, было невозможно установить размер AsyncStorage
. However in May 2019 the following commit изменил это.
Подробнее об этом можно прочитать здесь
Текущий размер асинхронного хранилища установлен на 6 МБ. Превышение этого предела приводит к ошибке переполнения базы данных или диска. Это ограничение в 6 МБ является разумным ограничением для защиты пользователя от того, что приложение хранит слишком много данных в базе данных. Это также защищает базу данных от заполнения дискового кеша и искажения формы (вызовы endTransaction() вызовут исключение, а не откат, и оставят базу данных неправильной). Вы должны осознавать этот риск при увеличении размера базы данных. Мы рекомендуем следить за тем, чтобы ваше приложение не записывало в AsyncStorage больше данных, чем осталось свободного места на диске. Поскольку AsyncStorage основан на SQLite на Android, вы также должны знать об ограничениях SQLite.
Если вы все еще хотите увеличить емкость хранилища, вы можете добавить следующее в свой android/gradle.properties
AsyncStorage_db_size_in_MB=10
Это установит размер 10 МБ вместо 6 МБ по умолчанию.
Оригинальный ответ
Если вы используете настройки хранилища по умолчанию для redux-persist
в react-native
, он будет использовать AsyncStorage
AsyncStorage
имеет некоторые ограничения на объем, который он может хранить, в зависимости от используемой операционной системы.
В Android, если мы посмотрим на собственный код за AsyncStorage
видно, что верхний предел составляет всего 6 МБ.
В iOS нет таких ограничений на объем хранилища, которое можно использовать. Вы можете увидеть этот SO ответ для дальнейшее обсуждение.
Если вы не хотите использовать AsnycStorage
, есть альтернативы, такие как redux-persist-fs-storage
или redux-persist-filesystem-storage
, которые позволяют обойти ограничение 6 МБ на Android.
person
Andrew
schedule
25.02.2019