Есть ли простая опция синхронного хранения для реагирования на родной язык?
У меня есть прецедент для синхронного хранения для моего адаптивного родного приложения.
Прежде чем приложение отобразит домашний вид, я хочу проверить, есть ли токен сеанса, хранящийся в локальном хранилище, и продолжить, если он доступен, в противном случае вместо этого в качестве исходного представления нужно будет отображать компонент входа.
Использование хранилища синхронизации упростит код.
Ответы
Ответ 1
Я не думаю, что есть простая опция синхронного хранения. В соответствии с этим ответ localstorage не реализован в ядре JavaScript IOS. AFAIK другие параметры, такие как те, которые используются в this localstorage polyfill, не работают. Это оставляет нам необходимость в реагировании на собственный модуль, который по своей сути является асинхронным. Из документы:
React Native bridge является асинхронным, поэтому единственный способ передать результат JavaScript - это использовать обратные вызовы или испускать события
Итак, я думаю, что Async - это путь.
Ответ 2
Для тех, кто ищет это, я нашел этот пакет npm, который обслуживал эту потребность
реагирует-нативный-SYNC-LocalStorage
Ответ 3
У меня есть аналогичная ситуация, и найдено, что Realm поддерживает синхронное чтение, и это то, что мне нужно. Realm является немного большим для хранения одного токена. Я использую AsyncStorage для всего остального. Дайте мне знать, если вы найдете более простое решение.
Ответ 4
Там нет решения, аналогичного с разработкой Native Mobile, таких как SharedPreferences в Android.
Родной путь: большинство операций синхронизируются. (например, чтение из хранилища и т.д.), некоторые операции выполняются асинхронно (запрос http, загрузка образа)
Реагируйте Родным способом: почти все операции асинхронны. это объясняется ответом @Ryan Harmuth.
Итак, давайте начнем использовать Redux в качестве решения. :)
Ответ 5
Вот хорошая библиотека для синхронного хранения в React нативно https://github.com/raphaelpor/sync-storage ;)