Vitaliy
Gena
Добрый вечер. Может кто сталкивался с такой задачей.
Коротко: надо сохранять в памяти телефона большие файлы (в нашем случае json) чтобы можно было в дальнейшем с ними работать из офлайна.
AsyncStorage для таких целей сразу отваливается, т.к. его лимита не хватит даже для одного такого файла.
Сценарий я представлял примерно следующий: в качестве общения с апи использую axios, через него обращаюсь к нужному мне апи, получаю json, далее этот json кладу в память устройства (json файлов будет много, поэтому их также надо будет както внутри разделяться по идентификатору). Если у пользователя отсутствует инет, то соответственно подгружаем данные не по axios а из памяти устройства.
Сейчас пытаюсь изучить плагин https://github.com/joltup/rn-fetch-blob но чтото пока сложно идет. Подскажите я вообще правильно смотрю или мне надо совсем в другую сторону двигаться?
Всё очень сильно зависит от структуры данных. Если данных много, но с простой структурой, где всё по ключу достается, то я бы смотрел в сторону кастомного стораджа в файловой системе (примерно как вы описали), сам традиционно для этих целей react-native-fs использую. Если же нужны сложные выборки/фильтрация, то смотрел бы в сторону sqlite, кидаться во всякие непроверенные технологии, обещающие золотые горы, типа realm не стал бы, а sqlite я очень хорошо знаю и понимаю что он может, а чего нет. (но это мои личные предпочтения)
Vitaliy
Всё очень сильно зависит от структуры данных. Если данных много, но с простой структурой, где всё по ключу достается, то я бы смотрел в сторону кастомного стораджа в файловой системе (примерно как вы описали), сам традиционно для этих целей react-native-fs использую. Если же нужны сложные выборки/фильтрация, то смотрел бы в сторону sqlite, кидаться во всякие непроверенные технологии, обещающие золотые горы, типа realm не стал бы, а sqlite я очень хорошо знаю и понимаю что он может, а чего нет. (но это мои личные предпочтения)
тут соглашусь с тобой лишь отчасти ) realm достаточно давно уже может нормально заменить sqlite, asyncstorage и т.п. - если не вертеть серверные интеграции и т.п. магию, а пользоваться как локальным хранилищем
Валера
Всё очень сильно зависит от структуры данных. Если данных много, но с простой структурой, где всё по ключу достается, то я бы смотрел в сторону кастомного стораджа в файловой системе (примерно как вы описали), сам традиционно для этих целей react-native-fs использую. Если же нужны сложные выборки/фильтрация, то смотрел бы в сторону sqlite, кидаться во всякие непроверенные технологии, обещающие золотые горы, типа realm не стал бы, а sqlite я очень хорошо знаю и понимаю что он может, а чего нет. (но это мои личные предпочтения)
На самом деле кроме как сохранить в устройство и вытащить из устройства больше никаких действий проделывать не нужно будет. Вся логика парсинга этих данных уже проходит внутри компонентов.
react-native-fs видел, но почемуто решил проигнорить его и смотреть в сторону rn-fetch-blob. Попробую еще раз взглянуть, спасибо.
Валера
Realm сейчас смотрю, интересная штука, но для моих целей мне кажется слишком избыточной
Oleh
Ребята у кого был ошибка
error: bundling failed: Error: Unable to resolve module `@babel/runtime/helpers/interopRequireDefault` from `/Users/Oleg/RNProjects/hiii/src/index.js`: Module `@babel/runtime/helpers/interopRequireDefault` does not exist in the Haste module map
Все на свете перепробовал, не ранится(((((
Vitaliy
Oleh
Vitaliy
делал (
тогда нужно глубоко смотреть.
это монорепо или обычный проект?
Oleh
обычный проект
Andrei
всем привет, как считаете, рационально ли уже проект с достаточно большим объёмом пакетов переводить на 0.6 ветку или пока еще рановато для прода?
кто переводил, кто на какие палки в колёсах наткнулся?
Vitaliy
обычный проект
можно еще почистить всё (кеши и т.п.)
https://github.com/oblador/react-native-vector-icons/issues/878#issuecomment-446424233
если и это не поможет - конфиг metro проверить на блэклист и т.п. - у меня с axios на 0.59.10 было похожее из-за дефолтной регулярки /ios\/ в блэклисте
Oleh
Gena
Vitaliy
Oleh
он есть
Валера
Всё очень сильно зависит от структуры данных. Если данных много, но с простой структурой, где всё по ключу достается, то я бы смотрел в сторону кастомного стораджа в файловой системе (примерно как вы описали), сам традиционно для этих целей react-native-fs использую. Если же нужны сложные выборки/фильтрация, то смотрел бы в сторону sqlite, кидаться во всякие непроверенные технологии, обещающие золотые горы, типа realm не стал бы, а sqlite я очень хорошо знаю и понимаю что он может, а чего нет. (но это мои личные предпочтения)
Похоже что react-native-fs это именно то что я и искал) Записал файл, вытащил файл, прям идеально и ничего лишнего! Спасибо
Andrei
персистентное храние - интересная тема, вопрос как грамотно синхрозацию делать данных
Dmitry
Andrei
а чем react-native-fs лучше async storage, быстрее типа?
Валера
Думаю тут разница не в скорости а в области применения
Dmitry
Dmitry
Как думаешь, где хранятся данные AS?
Dmitry
Зачем прослойки, если можно напрямую в Файлы писать)
Andrei
предполагаю в тех же файлах
Валера
А чем обусловлено ограничение AS в 6 Мб?
Dmitry
Andrei
Валера
Хороший но не по адресу 😄
Dmitry
Gena
Andrei
в кейсе: не таскать по 100 раз одни и теже данные с сервера, оффлайн режим, дозагузка/синхронизация данных - мне думается sqllite напрямую удобней юзать, нежели react-native-fs и as решения, но могу ошибаться
Gena
Вот, вам ответ, про ограничение AS (там в комьюнити версии уже чуть пофиксили этот момент): https://github.com/facebook/react-native/blob/0.60-stable/ReactAndroid/src/main/java/com/facebook/react/modules/storage/ReactDatabaseSupplier.java#L103
Vladimir
Добрый вечер, создал проект через react-native init MyAwesomeProject --template typescript, в результате чего в папке template появилась такая же структура проекта как в корне, два файла index.js, два файла package.json, два файла App.js (App.tsx) И в результате чего не могу запустить проект, ругается на дублированные файлы (Duplicated files or mocks). Пытался найти решение, единственное что пишут, это удалить папку template но я хочу использовать typescript и специально с этим создавал проект. Как исправить ошибку и запустить проект? Заранее спасибо
UPD. Разобрался в README файле в проекте было написано что делать: React Native >= 0.60. npx react-native init MyApp --template react-native-template-typescript
You may need to remove the globally installed react-native-cli (npm uninstall -g react-native-cli), for the above command to work. The global react-native-cli is deprecated, and no longer supported.
Alexey
Доброй ночи. Подскажите пожалуйста, как использовать кастомные шрифты
Alexsandr
Alexey
Alexsandr
Alexsandr
я вроде бы помог
Alexander
Добрый вечер, создал проект через react-native init MyAwesomeProject --template typescript, в результате чего в папке template появилась такая же структура проекта как в корне, два файла index.js, два файла package.json, два файла App.js (App.tsx) И в результате чего не могу запустить проект, ругается на дублированные файлы (Duplicated files or mocks). Пытался найти решение, единственное что пишут, это удалить папку template но я хочу использовать typescript и специально с этим создавал проект. Как исправить ошибку и запустить проект? Заранее спасибо
UPD. Разобрался в README файле в проекте было написано что делать: React Native >= 0.60. npx react-native init MyApp --template react-native-template-typescript
You may need to remove the globally installed react-native-cli (npm uninstall -g react-native-cli), for the above command to work. The global react-native-cli is deprecated, and no longer supported.
Двигайся по инструкции, все заработает. И не забудь поставить pod и запускать через xcworckspace
Серега
Добрый вечер, создал проект через react-native init MyAwesomeProject --template typescript, в результате чего в папке template появилась такая же структура проекта как в корне, два файла index.js, два файла package.json, два файла App.js (App.tsx) И в результате чего не могу запустить проект, ругается на дублированные файлы (Duplicated files or mocks). Пытался найти решение, единственное что пишут, это удалить папку template но я хочу использовать typescript и специально с этим создавал проект. Как исправить ошибку и запустить проект? Заранее спасибо
UPD. Разобрался в README файле в проекте было написано что делать: React Native >= 0.60. npx react-native init MyApp --template react-native-template-typescript
You may need to remove the globally installed react-native-cli (npm uninstall -g react-native-cli), for the above command to work. The global react-native-cli is deprecated, and no longer supported.
Я создавал обычный проект и потом когда решил перевести на typescript просто постепенно переименовал все файлы проекта в tsx
Alexey
я вроде бы помог
ключевое слово "вродебы" я в свое время тоже любил всех "в гугл слать", но это не настоящая помощь (часто пищей для такой помощи во мне служили гордость и раздражительность - потом воспитав в себе терпение и сочувствие я стал обьяснять с примерами и с личным участием а если не было времени то гуглил быстро хорошую статью или обучалку и давал человеку) - если бы вы дали ссылку на годную статью это была бы помощь =)
я конечно же разобрался как оказалось не все статьи из гугла "одинаково полезны"
Alexey
ну а вообще конечно можно было поиском по группе воспользоваться =)
Anton
Добрый вечер, создал проект через react-native init MyAwesomeProject --template typescript, в результате чего в папке template появилась такая же структура проекта как в корне, два файла index.js, два файла package.json, два файла App.js (App.tsx) И в результате чего не могу запустить проект, ругается на дублированные файлы (Duplicated files or mocks). Пытался найти решение, единственное что пишут, это удалить папку template но я хочу использовать typescript и специально с этим создавал проект. Как исправить ошибку и запустить проект? Заранее спасибо
UPD. Разобрался в README файле в проекте было написано что делать: React Native >= 0.60. npx react-native init MyApp --template react-native-template-typescript
You may need to remove the globally installed react-native-cli (npm uninstall -g react-native-cli), for the above command to work. The global react-native-cli is deprecated, and no longer supported.
Создай новый проект, это какая то ошибка. На неделе создавал также и все без проблем
Iovan
Доброго времени суток, с mapОМ валится, без мапа все гуд, кто подскажет?
Iovan
Alex
привет. У кого-нибудь есть опыт создания cross-platform игр (desktop, ios, android) на electron ?
Serhii
Serhii
удалите } после </Text>}
Serhii
а нет, не то
Iovan
там subtitle Закрывается
Alexander
у тебя случайно одинаковых id нет?
Iovan
неа
Serhii
да, я уже увидил, тогда 38, там не нужно ;
Iovan
там массив из 4 элементов
Iovan
Iovan
Kesha
Привет
А есть способ замедлить симулятор иос, чтобы RN работал помедленней?
Типа SE в режиме энергосбережения
ㅤ
Iovan
как из множества чекбоксов внутри map чекнуть конкретный чекбокс а не все?
Alexsandr
Kto?
Aleksei
Давай те я разъясню, чтобы вы тут флуд не устраивали.
У нас в чате принято помогать новичкам (есть в правилах, можете освежить все в памяти еще раз). Если нечего по существу ответить, то лучше промолчать.
ПС. скоро будут реформы на этот счет, не переживайте, мы работаем над тем чтобы всем было лучше.
Kto?
Та просто вся суть, что большинство как раз в гугл не заходит и задает вопросы сходу.
Alexsandr
я не в гугл отправил, а отправил на его ответ, там первая статья которая вылетает правильная, просто переход по первой сыллке 5 минут прочитать, сделать все по инструкции и вуаля
Aleksei
Alexsandr
Irakliy
Dr
Всем привет. Использую OneSignal для отправки пушей. На ios работает идеально. На андроиде почему-то работает первый раз после установки прилаги. Стоит ее перезапустить, то перестает отрабатывать лисенер OneSignal.addEventListener('received', onReceived); просто не вызывается, а пуши приходят. Может кто-нибудь посдкажет что? Или было нечто похожее?
Irakliy
Narek
Narek
не совсем понимаю, при чем тут, открытие приложения