Size: a a a

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

2020 July 23

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
в самом начале я пробывала сделать максимально просто
{regions.map((region: Region, index: number) => {

 
// region.hero_image === '../Assets/Images/africa.jpg'
 region.hero_image =
requirerequire(region.hero_image);
источник

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
и это просто не работает
источник

ДА

Данила Андреев... in React Native — русскоговорящее сообщество
Дарья Ромашкина
в самом начале я пробывала сделать максимально просто
{regions.map((region: Region, index: number) => {

 
// region.hero_image === '../Assets/Images/africa.jpg'
 region.hero_image =
requirerequire(region.hero_image);
Ой, не надо так мутировать.
источник

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
хотя если сделать вот так
{regions.map((region: Region, index: number) => {
 
 const img = '../Assets/Images/africa.jpg'
 region.hero_image =
require(img);
то это работает и это просто взорвало мне мозг
источник

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
Jura Semenenko
создай обьект const images: {1: require(///img1.png), 2: require(///img2.png)} source={images.[imageNumber]}
не могу я так, мне не разрешают, говорят это хардкод и нам нафиг не нужен объект, который нужно писать руками
источник

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
Дарья Ромашкина
хотя если сделать вот так
{regions.map((region: Region, index: number) => {
 
 const img = '../Assets/Images/africa.jpg'
 region.hero_image =
require(img);
то это работает и это просто взорвало мне мозг
потому что во втором случае бандлер видит эти пути, а в первом они будут вычислены в момент выполнения
источник

A

Alexander in React Native — русскоговорящее сообщество
Дарья Ромашкина
просто из-за того, что я не могу сделать вот так {require(`../../img/{id}.jpg`) или {require(region.hero_image)} я не понимаю как их маппить
источник

ДР

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

A

Alexander in React Native — русскоговорящее сообщество
посмотри про динамический импорт
источник

A

Alexander in React Native — русскоговорящее сообщество
сам я его не использовал еще
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
Alexander
посмотри про динамический импорт
Не надо путать грешное с праведным. Мы тут про РН говорим.
источник

JS

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

ДР

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

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
Alexander
посмотри про динамический импорт
это не сработает, потому что бандлер так не умеет, ему реальные пути нужны во время сборки, а не во время выполнения.

в рантайме нет никаких fs, есть только один бандл и ссылки на нативные ассеты
источник

ДР

Дарья Ромашкина... in React Native — русскоговорящее сообщество
Я правильно понимаю, что в этом случае, мне нужно написать объект, где я буду хранить все require(path-to-some-img), и выбирать нужное поле в зависимости от id региона?
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
Дарья Ромашкина
Я правильно понимаю, что в этом случае, мне нужно написать объект, где я буду хранить все require(path-to-some-img), и выбирать нужное поле в зависимости от id региона?
Да, все верно.
источник

АС

Алексей Савельев... in React Native — русскоговорящее сообщество
Vitaliy Ponomarev
это не сработает, потому что бандлер так не умеет, ему реальные пути нужны во время сборки, а не во время выполнения.

в рантайме нет никаких fs, есть только один бандл и ссылки на нативные ассеты
не нативные ;)
источник

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
Дарья Ромашкина
Я правильно понимаю, что в этом случае, мне нужно написать объект, где я буду хранить все require(path-to-some-img), и выбирать нужное поле в зависимости от id региона?
да, это как один из вариантов решения
источник

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
Алексей Савельев
не нативные ;)
да, согласен.
на ассеты в приложении )
источник

JS

Jura Semenenko in React Native — русскоговорящее сообщество
Дарья Ромашкина
Я правильно понимаю, что в этом случае, мне нужно написать объект, где я буду хранить все require(path-to-some-img), и выбирать нужное поле в зависимости от id региона?
А если картинки грузятся через админу в базу, то как они попадут в память телефона? Я не очень понимаю этот момент…
источник