Артем
ребят, а можно сделать чтобы placeholder в инпуте не исчезал когда вводишь текст?
Vitaliy
Преподносят их как что-то супер технологичное, а на самом деле вероятность корректно сопоставить пользователя мобильного браузера и приложения на коротком промежутке времени очень высока даже по паре-тройке параметров.
@gblack9 ну я бы не был так оптимистичен, задача трекинга часто не ограничивается только мобильными браузерами ) пару лет назад глубоко вникал в эту тему. при том что в web-аналитике к тому времени опыт был очень неплохой (сам настраивал много чего и обучал разработчиков с менеджерами/маркетологами настраивать аналитику и google tag manager еще на заре его появления), с мобилками в плане аттрибуции трафика всё очень нетривиально, на самом деле ) google play передает данные INSTALL_REFERRER в сборку через broadcast receiver в приложении (при определенным образом сформированной ссылке и если ты ставишь приложение переходя с мобильного устройства либо жмёшь на кнопку "установить" в браузере), там всё не так уж плохо (хотя конечно не 100% трекинг и граничные кейсы, как минимум те которые я обозначил, приходится обрабатывать сторонними решениями) ребята из купертино (apple itunes connect) вообще клали на все хотелки маркетологов, разработчиков и т.д. - там нормального способа хоть как-то это завести без сторонних интеграций не было (и вроде бы до сих пор нет) - самое реальное что делают многие SDK для аналитики - postback-запрос после установки приложения и матчинг на сервере самой системы (и тоже не самый точный). из всего самое известное - appsflyer, tune, adjust из зарубежных (платные и недешёвые на нормальных объемах), yandex app metrika (бесплатная но не было модуля для RN а пилить свой не было времени, возможно сейчас что-то есть), что-то у mailru вроде тоже появилось. @avell Как минимум еще branch.io рекомендую посмотреть - они как раз закрывают вопрос атрибуции установок близкой к 100%, но там интеграция сама по себе не в 1 шаг и аналитикой в привычном смысле (google/firebase/amplitude) сервис скорее не является, но на платном тарифе с чем-то нормальным точно интегрируется.
Артем
ребят, а можно сделать чтобы placeholder в инпуте не исчезал когда вводишь текст?
я хочу чтобы поверх плейсхолдера был текст, т.е. если длина плейсхолдера была больше чем длина текста в инпуте, чтобы оба были видны
Vitaliy
я хочу чтобы поверх плейсхолдера был текст, т.е. если длина плейсхолдера была больше чем длина текста в инпуте, чтобы оба были видны
скорее всего только костылить Text + TextInput + цвет текста, одним инпутом такое точно не решить, placeholder по умолчанию при первом введенном символе исчезает. Где-то здесь вроде даже обсуждали аналогичное недавно
Артем
спасибо, уже придумал как мою проблему решить)
Dima
Всем привет, у кого есть эвотор 10 без фискальника? Нужно протестировать одну функцию в приложении, какой-то плавающий баг, зависит от терминала похоже. Займет 5 минут. Выдам тестировщика на аккаунт, нужно будет автоирзоваться, нажать на кнопку и сказать что произошло)) Кто может помочь?
Игорь
Сравнивал с bitrix, dle, wordpress, и выбрал instantcms. Движок Российский и не малое комьюнити. Короче бесплатный сыр без мышеловки
Игорь
а к чему это в чате по RN? особенно если учесть, что эта CMS на PHP
Вопрос был - что использовать в качестве бэка
Игорь
С рест апи
Irakliy
а кто-нибудь может объяснить как работает выражение: const Header =({title}) =>{ } Как я понимаю, создается объект, в который передается анонимная функция, с параметром title, в этой функции происходят какие-то действия. Но мне не понятно, каким образом эта функция связана с объектом Header. Что происходит с этим объектом? Он сам превращается в функцию, с параметром title? И так-же не понятна конструкция <Header title={'Hello'}/> Здесь title это атрибут? Но как это всё устроено? Как параметр функции, объекта Header, становится атрибутом? Объясните пожалуйста.
{title} - деструктуризация объекта, из всех ключей переданного функции объекта, она возьмёт только с соответствующим названием. В случае с редаксом, функция принимает некоторые необязательные аргументы - пропсы, и возвращает JSX объект, в которые может эти самые пропсы передавать Деструктуризация нужна для, скорее визуального упрощения (возможно, на скорость кода это тоже влияет, точно не могу судить, я не на столько хорошо знаю джэс) <Header title="Hello" /> означает, что вы вызываете компонет (функцию) Header и передаёте в него проп title, чтобы использовать его в самом компоненте, нужно куда-то передать, собственно, например так: const Header = ({ title }) => { return ( <View> <Text>{title}</Text> </View> ) } без деструктуризации было бы как-то так: ... (props) => ... ... ...{props.title}... ...
Saken
Добрый день, ребят. Как сделать так что бы при нажатии на кнопку меня кидало на другую страницу приложения. Для этого нужен React Navigation?
Irakliy
надеюсь, нормально объяснил, в голове звучало лучше, пока писать не начал😅
Saken
Это мне tab navigator нужен?
Anton
Это мне tab navigator нужен?
Как хочешь. Тебе нужен react native navigation или подобное, что умеет в роутинг. Далее открываешь либу и читаешь readme
Irakliy
Это мне tab navigator нужен?
необязательно, тут, скорее, от целей и дизайна зависит хочешь tab navigator, хочешь bottom tab navigator, хочешь просто на кнопки повесь переходы, как в вебе =)
Serhii
всем привет, подскажите пожалуйста, если кто сталкивался: делаю простейшее приложение. 2 дня назад делал хотрелоад работал, сегодня все началось с того, что приложение крашится после каждого сохранения в файле каком-либо даже если я просто букву в тексте сменю, сохраню и экспо на моем телефоне падает сразу
Nikolay
Где хендлить onNotificationOpened (firebase), когда приложение было свёрнуто? componentDidMount из App.js не вызывается так как юзер мог свернуть приложение на любом view.
Serhii
Скорее всего live включено
а где это чекнуть и выключить? в папке expo глянул json c настройками - там не было
Doc
Если через девайс делаешь потряси телефон и там посмотри включён ли live reload Если на эмуляторе на винде на андроиде ктрл + м
Doc
На маке не помню комбинацию
Doc
Но там сверху есть сверху эмулятор, shake
Serhii
о есть такое, но дизейбл лив релоада некликабельный(
Никита
а какая разница грубо говоря кто по памяти выигрывает? Если память есть, то вроде и без разницы, если нет - GC почистит ее. При этом у выигрыше в памяти есть обратная сторона (чисто интуитивно) - GC запускается чаще, а это может проседания в производительности вызывать
Andrei
Кто-то сталкивался с тем, что что-то не консолится в debagger-ui, но в терминал консолится?
Iovan
Привет всем, ребятки, а всегда проблемы когда проект с windows кидаешь на макось
Iovan
то все летит в тар тарараы?
Anatoly
то все летит в тар тарараы?
Обычно потому, что всё делалось под андроид, а ios не тестировалась вообще
Михаил
{title} - деструктуризация объекта, из всех ключей переданного функции объекта, она возьмёт только с соответствующим названием. В случае с редаксом, функция принимает некоторые необязательные аргументы - пропсы, и возвращает JSX объект, в которые может эти самые пропсы передавать Деструктуризация нужна для, скорее визуального упрощения (возможно, на скорость кода это тоже влияет, точно не могу судить, я не на столько хорошо знаю джэс) <Header title="Hello" /> означает, что вы вызываете компонет (функцию) Header и передаёте в него проп title, чтобы использовать его в самом компоненте, нужно куда-то передать, собственно, например так: const Header = ({ title }) => { return ( <View> <Text>{title}</Text> </View> ) } без деструктуризации было бы как-то так: ... (props) => ... ... ...{props.title}... ...
Спасибо огромное за ответ! "{title} - деструктуризация объекта, из всех ключей переданного функции объекта, она возьмёт только с соответствующим названием." Т.е. объект Header, становится функцией? Я говорю "становится", потому что думаю, возможно он становится из-за того, что объекту Header присваивается функция: const Header = ( { } ) => {} А если бы присваивалась не функция, а что-то другое(если это имеет смысл), то Header, уже была бы просто компонентом, а не функцией? Или функция и компонент это всегда что-то типо синонимов, не зависимо от реализации? "без деструктуризации было бы как-то так: ... (props) => ... " т.е. все свойства/атрибуты, переданные Header'у, <Header тут />, это считается как один объект props? А тут: ({ title }) => {}, уже при помощи деструктизации берется только одно конкретное свойство title. "из всех ключей переданного функции объекта" Тут вы под объектом подразумевете props? А props содержит все свойства, переданные в выражении <Header />, так?
Irakliy
Спасибо огромное за ответ! "{title} - деструктуризация объекта, из всех ключей переданного функции объекта, она возьмёт только с соответствующим названием." Т.е. объект Header, становится функцией? Я говорю "становится", потому что думаю, возможно он становится из-за того, что объекту Header присваивается функция: const Header = ( { } ) => {} А если бы присваивалась не функция, а что-то другое(если это имеет смысл), то Header, уже была бы просто компонентом, а не функцией? Или функция и компонент это всегда что-то типо синонимов, не зависимо от реализации? "без деструктуризации было бы как-то так: ... (props) => ... " т.е. все свойства/атрибуты, переданные Header'у, <Header тут />, это считается как один объект props? А тут: ({ title }) => {}, уже при помощи деструктизации берется только одно конкретное свойство title. "из всех ключей переданного функции объекта" Тут вы под объектом подразумевете props? А props содержит все свойства, переданные в выражении <Header />, так?
компонент в реакт - это функция (или класс) возвращающая JSX, ничего никуда не преобразуется) по остальным пунктам да, props - это объект со всеми переданными компоненту параметрами
Dmitry
как такое возможно, что експорчу пнг а приходит number ? import { Banknote } from 'config/images'; <CashInputCard logo={<Banknote />} />
Dmitry
я уже и картинку менял, и навзвание при экспорте и импорте
Dmitry
приходит число
Михаил
большое)
Irakliy
спасибо!
да пожалуйста)
Церго
@OlliJesus require() вместо импорта
Dmitry
@OlliJesus require() вместо импорта
но прикол в том что остальные изображения работают нормально
Церго
и со скобками все остальные ? как { Banknote }
Никита
при импорте картинок будет число - что-то вроде id
Никита
его можно скармливать в source, без uri и прочих параметров - просто число. Все другие картинки тоже числа должны быть
llllllllllllll
Народ, что-то я совсем запутался в React Navigation. Есть drawer menu в нем menu item 1 & menu item 2, нажимаю на menu item 1 - попадаю на stack menu с screen 1 & screen 2, нажимаю на кнопку в screen 1 - попадаю на screen 2. Тут все работает как надо. Но потом на screen 2 вызываю drawer menu и пытаюсь попать обратно на screen 1 нажимая на menu item 1 - у меня просто остается все на месте,, а нужно чтобы обратно возвразало на screen 1. Не знаю, понял ли кто чего, но может есть спец 🙂
llllllllllllll
я даже пока писал запутался
llllllllllllll
исправил немного
llllllllllllll
короче говоря - нажимая на пункт менб в drawer - ничего не происходит
llllllllllllll
Я болегчил себе боль этим react-native-router-flux
а в чем там принцип в двух словах?
llllllllllllll
да, react navigation - это дичь
llllllllllllll
особенно когда я работаю в том числе в бекэнде и смотрю на это всё и глаза болят
llllllllllllll
но уже все написано под него, не понятно как тут разобаться
Anatoly
Вчера посоветовали библиотеку react-native-interactable для drag-n-drop. Сейчас с ней разбираюсь, вроде то, что нужно, есть вопрос: Не вижу возможности вернуть элемент обратно на его начальную позицию. Есть про initialPosition. Нужно самому вычислять начальную позицию элемента, указывать её в snapPoints, и потом двигать? Или как это вообще должно делаться?
Aynur
да, react navigation - это дичь
всё там нормально, код сюда киньте
llllllllllllll
могу в лс?
llllllllllllll
чтобы не засорять чат
Ivan
Кто обновлял npm у вас приложение стартует на эмуляторе ?
Ivan
Вот консоль, оно запускается и сразу закрывается и никаких ошибок ничего не показывает npm 6.13.4 node 12.14.0
Ivan
llllllllllllll
в смысле
Irakliy
просто там, помимо push, есть ещё pop, popTo и ещё какие-то
Irakliy
в зависимости от того, что тебе нужно
llllllllllllll
мне так кажется надо делать кастомный drawer
llllllllllllll
и каждый пункт менб
llllllllllllll
и там уже можно this.props.navigation.popToTop()
llllllllllllll
повесить
llllllllllllll
тогда должно все работать
NoName
Привет. Кто то пробовал билдить IPA на маке через ssh? Локально на маке все билдится, но если заходить на мак с другого компа по shh то не работает. Хотя запускается один и тот же скрипт. Мне кажется что проблема в этом https://i.imgur.com/RffIaQD.png билд делаю через turtle-cli
Егор
Чуваки, кто знает, можно как размутить в <TextInput /> что-то типа ellipsizeMode в <Text />? Ну чтоб если текста слишком много, ставилось три точки
Khorark
Круто! Спасибо за статью! А есть реальные кейсы где кто-нибудь юзал V8 вместо JSC на проде?