ᛖᚹᛋᛁᚱ
Так в нативе делал с вьюшками
ᛖᚹᛋᛁᚱ
Правда не слишком камильфо
Mike
Но почему не увести хеадер за экран?
По сути я это и делаю. Но позиция флетлиста жесткая. Если я хедер делаю абсолютным и тогда влетлист вылезает вперед. По хедеру вожу пальцем, а скролится флетлист Хедер вставляю под флетлист и он пропадает
Mike
а корень всего этого в том, что при скроле я использую useNativeDriver: true. С ним нельзя менять высоту компонентов(только двигать их) Без useNativeDriver, анимация тормозит. Но зато все работает)
Aleksei
кину на всякий
вроде выглядит норм, смущает только headerTranslate, может он отрицательный и уводит хэдер
ᛖᚹᛋᛁᚱ
Если совсем не получается, сделайте обычную анимацию пропадания при скроле
Mike
ᛖᚹᛋᛁᚱ
Т.е. не четко завязанную на движении флет листа
ᛖᚹᛋᛁᚱ
Когда скрол вниз, хеадер пропадает, когда вверх - появляется
ᛖᚹᛋᛁᚱ
Так в андроиде часто делают
Mike
так а может хэдер не перехватывает события у флат листа (и я вообще не уверен что это можно)
Видео скину сейчас, где абсолютный хедер стоит перед флетлистом. Вроде все норм отрабатывает
Mike
Mike
Вот только на этом видео я пальцем водил не по флету, а по хедеру)))
Aleksei
ну так это не удивительно, по иерархии флэт же ниже
Mike
Когда скрол вниз, хеадер пропадает, когда вверх - появляется
Можно впринципе) Вот только это будет уже не комильфо)
Mike
ну так это не удивительно, по иерархии флэт же ниже
ну вот стоит мне его поставить под флет, то он просто пропадает)) скрин выше кидал. Там зеленый прямоугольник показывает на то, что выбран флетлист
Aleksei
ну вот стоит мне его поставить под флет, то он просто пропадает)) скрин выше кидал. Там зеленый прямоугольник показывает на то, что выбран флетлист
ну я понимаю, однако правильнее будет поставить ниже по иерархии. Я скидывал свой код, там ниже стоит. Есть еще например тот же react-navigation, там хэдер тоже ниже по иерархии
Mike
Посмотрю тогда код. Спасибо за советы. Как обычно где-то косяк самый банальный. Буду искать
Aleksei
нет
это хорошо)
Mike
пробовал) он тогда не скролится
Konstantin
С помощью AsyncStorage разве нельзя получать данные const data = await AsyncStorage.getItem('storage'); на разных экранах react-navigation?
Władimir (Zae)
можно
ᛖᚹᛋᛁᚱ
Вот только если реалм не компилится - это единственный вариант
GrafMine
Привет, ребят подскажите плз что из либ посоветуете юзать для того что бы прикрепить файл в частности фотку для отправки на сервер потом, и так же чтоб активировать камеру сфоткать и фотка отобразилась ввиде превью в рендере и так же чтоб отправить на сервер?
ᛖᚹᛋᛁᚱ
Fetch + formData
ᛖᚹᛋᛁᚱ
И пикер сверху
ᛖᚹᛋᛁᚱ
Я противник лишних зависимостей
ᛖᚹᛋᛁᚱ
https://github.com/g6ling/React-Native-Tips/blob/master/How_to_upload_photo%2Cfile_in%20react-native/README.md
ᛖᚹᛋᛁᚱ
Вот все расписано
Nick
Fetch + formData
А разве обычный fetch поддерживает signal для отмены загрузки? 🤔
ᛖᚹᛋᛁᚱ
XML который в статье по-моему поддерживает
ᛖᚹᛋᛁᚱ
Но не знаю, у меня не было задания отменить
B.
Подскажите, а как называется эта штука с инспектором вьюшек?)
B.
Toggle inspector
Спасибо!
Никита
по секрету - это не фишка экспо. Работает и в чистом rn
Mike
по секрету - это не фишка экспо. Работает и в чистом rn
спорить не буду) я использую expo просто
Peter
hey guys, у кого-нибудь были проблемы с испильзованием async/await в expo приложении? У меня как-бы просто не работает :/ хотя в .babelrc установлен пресет expo
Peter
я пытаюсь в цикле отправлять запрос и дожидаться окончания цикла прежде чем возвращать значение
Ruslan
Всем привет, при сборке gradle выдает такое
Ruslan
The library com.google.android.gms:play-services-basement is being requested by various other libraries at [[11.0.4,11.0.4], [15.0.1,15.0.1]]
Ruslan
Как можно порешать данную проблему?
Никита
я пытаюсь в цикле отправлять запрос и дожидаться окончания цикла прежде чем возвращать значение
код можно? и что значит не работает - падает или не работает как ожидается?
Никита
The library com.google.android.gms:play-services-basement is being requested by various other libraries at [[11.0.4,11.0.4], [15.0.1,15.0.1]]
тут скорее всего кто-то из натива лучше поможет. У меня в android/build.gradle есть такой момент: def googlePlayServicesVersion = '11.8.0' allprojects { repositories { mavenLocal() jcenter() maven { url "https://jitpack.io" } maven { url 'https://maven.google.com' } maven { url "$rootDir/../node_modules/react-native/android" } } configurations.all { resolutionStrategy { force "com.google.firebase:firebase-messaging:$googlePlayServicesVersion" force "com.google.firebase:firebase-core:$googlePlayServicesVersion" force "com.google.android.gms:play-services-ads:$googlePlayServicesVersion" force "com.google.android.gms:play-services-base:$googlePlayServicesVersion" force "com.google.android.gms:play-services-maps:$googlePlayServicesVersion" force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion" force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion" force "com.google.android.gms:play-services-location:$googlePlayServicesVersion" force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion" } } } я так понимаю для решения нужно что-то в этом роде. Фиксирует версии сервисов
Ruslan
тут скорее всего кто-то из натива лучше поможет. У меня в android/build.gradle есть такой момент: def googlePlayServicesVersion = '11.8.0' allprojects { repositories { mavenLocal() jcenter() maven { url "https://jitpack.io" } maven { url 'https://maven.google.com' } maven { url "$rootDir/../node_modules/react-native/android" } } configurations.all { resolutionStrategy { force "com.google.firebase:firebase-messaging:$googlePlayServicesVersion" force "com.google.firebase:firebase-core:$googlePlayServicesVersion" force "com.google.android.gms:play-services-ads:$googlePlayServicesVersion" force "com.google.android.gms:play-services-base:$googlePlayServicesVersion" force "com.google.android.gms:play-services-maps:$googlePlayServicesVersion" force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion" force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion" force "com.google.android.gms:play-services-location:$googlePlayServicesVersion" force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion" } } } я так понимаю для решения нужно что-то в этом роде. Фиксирует версии сервисов
я примерно понимаю, в чем проблема, но как ее решить не пойму, перекопал уже столько всякого compile 'com.google.android.gms:play-services-base:11.0.4' compile 'com.google.android.gms:play-services-basement:11.0.4' compile 'com.google.android.gms:play-services-maps:15.0.1'
Ruslan
возможно, проблема в либках выше
Anonymous
cli
Почему cli?
Никита
Почему cli?
более гибкое решение. Экспо конечно проще значительно, но иногда может понадобиться примтивнейшее нативное решение и с экспо будут проблемы Здесь найдется масса сторонников экспо. Правильнее возможно будет попробовать и то и то и решить что лучше подходит
Anonymous
спасибо
Никита
возможно, проблема в либках выше
попробуйте в android/build.gradle дописать что я выше предложил. Возможно поможет. Проблема думаю в том что зависимости используют разные версии сервисов. Решение выше должно зафиксировать версии
Ruslan
спасибо
Хорошо, попробую, спасибо большое
Никита
возможно понадобится еще что-то вроде force "com.google.android.gms:play-services-basement:$googlePlayServicesVersion"
Никита
android/build.gradle
Никита
не в app
Евгений
спасибо
Я для себя решил, что пока буду делать MVP, буду в разных ветках держать проект на expo и на rn-cli. А уже потом решу что взять.
Никита
чисто из интереса - зачем держать экспо версию если есть cli? из реальных плюсов экспо (помимо простоты) в чате видел только code push, потому что при обновлении гарантированно не появится нативной зависимости
Ulad🧑‍💻
чисто из интереса - зачем держать экспо версию если есть cli? из реальных плюсов экспо (помимо простоты) в чате видел только code push, потому что при обновлении гарантированно не появится нативной зависимости
+ в быстроте развёртования и готовых компонентах, первый плюс нормальный CI/CD перекрывает без проблем, а вот со вторым не поспоришь, но он реально хорош для прототипирования или MVP если готовы потом переписать
Ruslan
android/build.gradle
Понял,спасибо!
Peter
.then(async (response) => { let convertedEvents = []; let roomName; convertedEvents = await response.map((item, index, array) => { roomName = Room.findOne({ _id: item.roomId }).then((res) => { console.log(res, "GETTED ROOM"); return res.roomName; }).catch((err) => { next({ status: 403, message: err.message }); }); return { ...item, roomName } }); console.log(convertedEvents, 'converted'); })
Peter
подскажите почему сначала выводится последний console.log (converted) а уже потом тот что внутри map (GETTED ROOM) ? async/await правильно юзаю?
Vladimir
у вас мешанина из промисов и async/await
Vladimir
советую для начала переписать в один стиль
Ulad🧑‍💻
подскажите почему сначала выводится последний console.log (converted) а уже потом тот что внутри map (GETTED ROOM) ? async/await правильно юзаю?
Согласен с прошлым и почитайте про коллстек вызовов и тогда должны понять что тут происходит, но код явно стоит обдумать
Peter
спс ребят, буду думать
Ulad🧑‍💻
А вообще если вам рассказать вкратце почему так, вначале в коллстеке вызовов выполняются синхронные действия, а потом асихнхронные
Vit
response.map возвращает не промис а список, await'у ждать нечего, roomName = не рум нейм, а промис, тоже пролетит сразу в return, получится список с промисами вместо roomName
Vit
если пользуешься async/await семантикой, то каждый await необходимо в try/catch укладывать, так как оно только на позитивный исход рассчитано, ексепшоны проглатывает
Vit
ну вот это уже промис-синтакс
Vit
я бы рекомендовал async/await в тех местах где кэтчить не надо, есть данные работаем, нет - и хрен с ними
Aleksei
Гайз, давайте придерживатся тематики чата
Vit
это дев-мод, в продакшене у юзера только грустные глаза и желание разбить телефон есть)