Size: a a a

React Native — русскоговорящее сообщество

2020 July 23

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
Vitaliy Ponomarev
у android там не только путь к файлу может быть, но и то что я в комменте на github скинул
Но иосу ведь все равно нужен путь, нет?
источник

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
Алексей Савельев
а локализация у вас как?
Извини, не поняла о чем речь
источник

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
Дарья Ромашкина
Не совсем понимаю в чем разница, получается и во втором и в первом случае пути это переменная, а не строка, если не сложно, можешь объяснить в чем разница для require в обращении к переменной внутри которой строка или в обращении к значению поля объекта в котором та же строка?
значение поля известно только в момент выполнения (в рантайме), значение в константе - во время сборки. картинки бандлятся при сборке, в рантайме никаких путей на самом деле нет, есть ресурсы которые упакованы в приложение, и вся основная "магия" того как они достаются описана в resolveAssetSource
источник

АС

Алексей Савельев... in React Native — русскоговорящее сообщество
Дарья Ромашкина
Извини, не поняла о чем речь
ну есть локализация в приложении?
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
Дарья Ромашкина
А почему бейс плохой вариант? Сам RN его принимает как вариант
На сколько мне известно перформанс страдает если их использовать. Так что просто допиши функцию которую ты уже начала писать и которая работает. Если это не нарушает запрета на создание обьекта, то ок. Но это обычная практика хранить все рекваеры с картинками в одном обьекте, и уже его импортить в компоненты.
источник

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
Алексей Савельев
ну есть локализация в приложении?
Переводы?
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
По сути будет то же самое, только времени потрачено больше. С учетом что картинки грузится будут с релизом апки, то это мало на что влияет. Есть еще варик вообще в нативных ассетах хранить, а в базе название картинки из нативного ассета. Но боюсь это тоже обозвут хардкодом)
источник

АС

Алексей Савельев... in React Native — русскоговорящее сообщество
да
источник

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
Кстати, вообще-то должны быть, но все поо них напрочь забыли
источник

S

Sample Name in React Native — русскоговорящее сообщество
Jura Semenenko
По сути будет то же самое, только времени потрачено больше. С учетом что картинки грузится будут с релизом апки, то это мало на что влияет. Есть еще варик вообще в нативных ассетах хранить, а в базе название картинки из нативного ассета. Но боюсь это тоже обозвут хардкодом)
По этой логике AndroidManifest тоже хардкод?
источник

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
Jura Semenenko
По сути будет то же самое, только времени потрачено больше. С учетом что картинки грузится будут с релизом апки, то это мало на что влияет. Есть еще варик вообще в нативных ассетах хранить, а в базе название картинки из нативного ассета. Но боюсь это тоже обозвут хардкодом)
++
вот как раз для этого решения в resolveAssetSource заглянуть стоит, чтобы понимать в каком виде оно будет храниться
источник

АС

Алексей Савельев... in React Native — русскоговорящее сообщество
Jura Semenenko
На сколько мне известно перформанс страдает если их использовать. Так что просто допиши функцию которую ты уже начала писать и которая работает. Если это не нарушает запрета на создание обьекта, то ок. Но это обычная практика хранить все рекваеры с картинками в одном обьекте, и уже его импортить в компоненты.
проблемы бейса которые мне известны:
- хранение. если на сервере то время за запрос по сети. если в бандле то увеличивет парсинг жс-а
- лишняя сериализация через бридж если с сети пришло, строкой в жс придет
- при передаче в имедж довольно большая строка через бридж пойдет
- конвертация в картинку дольше чем жпег или пнг на нативной стороне
- вопросы с кэшированием
источник

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
Ты имеешь ввиду функцию, которая будет парситт папку картинок или другую?
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
Дарья Ромашкина
Ты имеешь ввиду функцию, которая будет парситт папку картинок или другую?
Которая заранее будет рекваерить картинку. Ту которую ты выше сбрасывала и говоришь что работает
источник

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
Jura Semenenko
Которая заранее будет рекваерить картинку. Ту которую ты выше сбрасывала и говоришь что работает
Так это нельзя использовать, я же там просто стоку прописала в константу, это и не функция
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
Дарья Ромашкина
Так это нельзя использовать, я же там просто стоку прописала в константу, это и не функция
Тут вопрос уже не в реализации, а в умении доказать тому кто запрещает заранее зарекваирить картинки в объект что он не прав.
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
И прийти к рабочему решению.
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
Base64 плохо из-за перформанса, объект из-за хардкода. Выбор очевиден.
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
Я бы хранил вообще в нативных ассетах
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
x1,x2, x3 и аналоги для андроида. А в обкате региона название картинки.
источник