Sergey
react-native-masked-text
Anonymous
привет всем, подскажите, мне нужно рандомную картинку, я это делаю <Image require(и тут рандомный путь с помощью footerArray[Math.floor(Math.random() * footerArray.length)]) />
Sergey
<Image require(и тут рандомный путь с помощью footerArray[Math.floor(Math.random() * footerArray.length)]) />
Sergey
Welcome to the club
Sergey
ты не можешь поставить переменную для картинки «в лоб"
Sergey
🙂
Sergey
надо массив создать и отдельный файл
Sergey
а оттуда выбирать
Sergey
видимо тоже знакомо 🙂
Anonymous
мм понял ща попробую спасибо!
Sergey
мм понял ща попробую спасибо!
const images = [
require('../../../assets/details/element_1.png'),
require('../../../assets/details/element_2.png'),
require('../../../assets/details/element_3.png')
]
export default images
Anonymous
Sergey
и инклудишь images в основной файл
Sergey
ок
Preeternal
Я делал объектом. Чтоб можно было обращаться типа images.logo и т.д.
Владимир
кто не рекомендует?
Sergey
мин, попробую найти 🙂
Sergey
Но нюанс 🙂 - Массивы используются, но для объектов и их хранения, а сама информации в объектах, в качестве примера - данные в Firestore
A
коллеги, а как вы обрабатываете, TypeError: Network request failed ?
A
например в fetch
Sergey
через catch(error)
Sergey
try {} catch(error) {console.log(erro)}
A
окей
A
так он выводит все ошибки
A
мне конкретно по этой ошибке, нужно показывать экран-модалку
Sergey
Sergey
если вглубь, возможно как-то можно и выделить отдельную
Sergey
по идее error.type? как-то можно раскручивать
A
там нифига нету
A
в error приходит сплошой текст
A
в том то и дело
Sergey
Response.status
Sergey
?
A
нету response
A
catch error срабатывает
Sergey
тогда по регулярке пропарсить
Sergey
одна строчка
Sergey
же
Gena
Т.е. эффект такой же, как если выполнить вышеприведенный код...
Gena
Меня гложут некоторые сомнения... там действительно может не быть объекта Error... насколько я помню, трансляция ошибок из натива этим страдает... но чтоб просто строка в случае ошибки fetch...
Roman
Что для локализация обычно используете?
react-native-i18n? Или есть что-то другое?
A
A
Объекта нет
A
Возможно кривые руки, но перепроверял 2 раза
Gena
Возможно кривые руки, но перепроверял 2 раза
Вот этот код: https://github.com/facebook/react-native/blob/0.56-stable/Libraries/vendor/core/whatwg-fetch.js#L504
Должен быть объект, ищите, где вы его стрингифицировали... но по идее единственный способ нормально его отделить от остальных, это читать error.message
Gena
Что для локализация обычно используете?
react-native-i18n? Или есть что-то другое?
О, мне тоже интересно!
Сами используем https://github.com/messageformat/messageformat, но этого не хватает... для цифр, валют, дат, надо в идеале использовать Intl, а его нет и полифиллы довольно убоги...
И мне интересны вот эти вещи:
1. Выдергивание строк из кода (так, чтоб с typescript работало), и преобразование во что-то, с чем переводчики умеют работать (типа xliff)
2. Мержинг этого назад с компиляцией в каталог сообщений
3. форматы цифр, валют etc
Jasulan
Alexander
О, мне тоже интересно!
Сами используем https://github.com/messageformat/messageformat, но этого не хватает... для цифр, валют, дат, надо в идеале использовать Intl, а его нет и полифиллы довольно убоги...
И мне интересны вот эти вещи:
1. Выдергивание строк из кода (так, чтоб с typescript работало), и преобразование во что-то, с чем переводчики умеют работать (типа xliff)
2. Мержинг этого назад с компиляцией в каталог сообщений
3. форматы цифр, валют etc
Мы для Веба использовали gettext. Притащил его в RN и react для сайта. Фишка gettext, что работаешь со строкой, а не с лангварами.
1. Парсим через react-gettext-parser, понимет и RN. Получаем pot файл. Берем переводы с poeditor.com
2. Мержим с помощью msgmerge из утилиты gettext. Дальше из полученных .po файлов перегоняю в JSON и использую с обычной gettext либой на JS.
Gettext позволяет держать чистоту переводов. Если удалил какой-то текст в коде, то он его потрет и в переводах. Приходилось работать с переводами, которые используют переменные. Там в переводах образовывалась помойка.
Gena
Мы для Веба использовали gettext. Притащил его в RN и react для сайта. Фишка gettext, что работаешь со строкой, а не с лангварами.
1. Парсим через react-gettext-parser, понимет и RN. Получаем pot файл. Берем переводы с poeditor.com
2. Мержим с помощью msgmerge из утилиты gettext. Дальше из полученных .po файлов перегоняю в JSON и использую с обычной gettext либой на JS.
Gettext позволяет держать чистоту переводов. Если удалил какой-то текст в коде, то он его потрет и в переводах. Приходилось работать с переводами, которые используют переменные. Там в переводах образовывалась помойка.
messageformat мощнее, и это в принципе не мешает работать с самим текстом... т.е. то, что у вас является "ключом", абстрактная константа (лангвар), или сама строка на дефолтном языке не является свойством формата локализации... т.е. да gettext из коробки использует строку на дефолтном языке как ключ, messageformat схемы, традиционно используют константы... мы в прошлом проекте начали с использования строк, но потом всё равно переделали всё на константы (верней добавили их), потому что хотелось уметь сохранить переводы при небольших корректировках текста, даже не сами переводы, а информацию о них... т.е. вот наш пример из предидущего проекта:
<Text style={style.description}>
{_t('devices.noData.description',
`{MODE, select, day{В выбранный день} week{На выбранной неделе} month{В выбранном месяце}` +
`other{В выбранном периоде}} данных нет.`,
{ MODE: this.props.selectedCalendarMode })}</Text>
Gena
Чтоб было понятно, мне больше нравится использовать само сообщение как ключ к локализации, это позволяет не париться с перегенерацией локалей при разработке. Но так теряются переводы при смене строки, я просто не придумал другого способа сохранить переводы, как добавить уникальный ключ.
Gena
А вот с Intl в RN реально проблема. Если с датами ещё как-то можно бороться, т.к. у moment есть своя локализация для них, то вот моя попытка недавно форматировать валюты феерически провалилась... надо было цену товара показывать, ну я и сделал через Intl... красиво так получилось... на входе 1000, на выходе "1 000,00 ₽" с неразрывными пробелами, всё как надо... на iOS... когда запустил на Android, понял, что попал ))) В итоге свой форматтер писал ))
Peter
https://www.facebook.com/hramos/videos/10101317533036249 Не знаю кидали или нет, видос от команды РН про Fabric
Gena
https://www.facebook.com/hramos/videos/10101317533036249 Не знаю кидали или нет, видос от команды РН про Fabric
Кидали, да... там довольно неразборчиво, но из того, что услышал, лучше будет, но не сильно. Фундаментальную проблему RN с передачей данных JS <-> Native они так не решат... Более того, получат ещё ряд проблем с производительностью, потреблением памяти и сложностью расширения, связанную с попыткой реализовать иммутабилити на C++. Более того, все, даже небольшие плюшки от новой реализации будут в "следующих сериях", сейчас прототип...
Demuz
Кто нибудь сталкивался? Рендер верзнего навигатора постоянно останавливается и экраны не отображаются, очень криво работает, голубая полоса останавливается, если отпускаешь палец.
Demuz
Demuz
Внизу стандартный боттомТабНав из навигейшн. Первый таб это топМатериалТабНавигатор.
Demuz
Alexsandr
У меня примерно тоже самое, но работает нормально, могу чуть позже gist прислать
Ivan
как лучше всего хранить/обрабатывать большие списки данных? ~10к записей, нужно выводить предложения при вводе в инпут с фильтром по разным полям
不退転」
不退転」
Ну это так, имхо
Ivan
больше волнует оптимизация фильтрации, фильтрация в js долгая будет, скорей всего
Ivan
мм, кажется, realm в этом деле крут
Vit
Vit
1000 элементные списки даже говноандроиды вертят не задумываясь
shashkov0
подскажите как правильно настроить автоинкремент в fastlane.
Сейчас версию указываю руками:
increment_build_number(
build_number: "1.18"
)
Необходимо, чтобы версия указывалась так current_version + 0.01. Как это правильно написать?
Vit
shashkov0
Смысл как раз в том, чтобы руками бамп версии не делать вообще
Vit
А номер билда склеивай 1.2.3 -> 10203
shashkov0
current_version + 0.01 - то есть вот так нереально сделать?
Vit
shashkov0
Часто забываю руками бамп версии делать, поэтому решил автоматизировать процесс
Vit
Дисциплина!)
Vit
Семантику добавь -> бамп минора для нового бинарника (релиза в сторы), бамп патча для нового кодпуша
Serhii
гайс нужна помощь , из api (unsplash) на главном экране в компоненте (HomeScreen) достаю рандомные 10 картинок с авторами и рендерю их на экран через flatlist, через react-navigation в params пробрасываю либо индекс элемента либо сам элемент в другой компонент чтобы там этот один элемент на весь экран открыть. Так вот данные гуляют спокойно я их и через консоль и через девтулз вижу , но на втором компоненте они не рендерятся вообще, консоль выдаёт такую штуку (ReactNativeJS: Warning: isMounted(...) is deprecated in plain JavaScript React classes. Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.) , но скорей всего она тут не причём, так в чём может быть проблема?