Eugene
Objects are not valid as a React child (found: object with keys {weight, height}).
Чот все утро дебажу эту ошибку, после сабмита формы 🤔
вообще в коде нигде нет {weight, height}
Eugene
🤔чот странное происходит..
Eugene
If you meant to render a collection of children, use an array instead.
in RCTText (at Text.js:154)
in TouchableText (at Text.js:278)
in Text (created by Context.Consumer)
🤔
Никита
Eugene
🤔нет ничего такого..
да и для стилей у меня styled.
Срабатывает почему--то после submit формы о_О
Eugene
Хм, кажется где-то в redux накасячил
Aynur
Dmitry
Eugene
Eugene
А, нет:D
Eugene
сделал console.log(children) в text
там вообще с другого экрана приходит текст О_О
Eugene
🤔почему то тригается другой скрин о_О
из react-navigation
Eugene
🤔я в коде нигде не использую navigate
Dmitry
react-native-iap, возвращает данные в строгой локали, по всей видимости из региона нахождения устройства… А есть возможность получить по другой локале, чтобы иметь возможность отображать стоимость не только в рублях, но и в долларах?) Кто сталкивался)
Eugene
почему-то срабатывало из-за родительского компонента <Loading>
там в начале было if и
this.props.navigate('Activate')
После в компоненте Activate после ошибки в запросе - тригерело его переходить на какой-то левый скрин о_О
Dmitry
Dmitry
этим все сказано
Eugene
😞
Никита
да вроде тут нет проблем с react navigation. Так же можно и весь рн притянуть к проблеме. Да и вообще сказать “мобильная разработка и этим все сказано”
Dmitry
Demuz
Здарова все, кто нибудь встречался с тем чтобы Alert на iOS не работал? Сейчас скрин скину...
Demuz
Demuz
В документации написано Works on both iOS and Android
Alexandr
Valentin
Добрый день! была ли у кого-то подобная проблема. При билде по iOS. Связанная с firebase. React-native link делал.
Library not found for -lBoringSSL-GRPC
Alexey
Demuz
Demuz
Там нет аргументов, там чистые строки везде. Видно же.
Alexey
Demuz
AlertIOS Тоже такую ошибку дает. Неужели алерты на IOS не работают?
Łōgäń
была такая же проблема
Alexey
Ну вот красный скрин это и есть результат примеров из доки.
Я в таких случаях смотрю в исходники. Но пока не вижу, что могло сломаться.
Тут изменение было 3 дня назад:
https://github.com/facebook/react-native/commits/master/Libraries/Alert/Alert.js
А тут 4 месяца назад: https://github.com/facebook/react-native/blob/master/React/Modules/RCTAlertManager.m
В багах RN тоже ничего по Alert я не нашел: https://github.com/facebook/react-native/issues?utf8=%E2%9C%93&q=Alert+
Но надо смотреть в локальные файлы в node_modules. Попробуй подебажить ./node_modules/react-native/Libraries/Alert/Alert.js
Łōgäń
пробуй перезапустить проект
Alexey
Если перезапуск проекта поможет (что часто случается), то я так делаю, чтобы всё надёжно тёрлось.
$ cat ./scripts/restart.sh
#!/usr/bin/env bash
# Clear watchman watches
echo "Watchman cleanup:"
watchman watch-del-all
# Remove metro bundler's cache and temporary files
echo "Metro bundler cleanup:"
rm -rf /tmp/metro-bundler-cache-*
rm -rf /tmp/haste-map-react-native-packager-*
rm -rf ~/.rncache
# Reset Metro Bundler cache and start bundler
echo "Start bundler (reset cache):"
yarn start --reset-cache
Dmitry
Demuz
Demuz
Demuz
Вонючий expo
Alexey
Demuz
У меня в rn init вобще таких проблем не было.
Kto?
Ура доступ в приватный
Kto?
Крутяк
Gena
Друзья, а скажите, как часто и регулярно вы пишете код защищенный от "дребезга контактов" (это я условно называю, не знаю точной терминологии). Короче блокировку всяческих элементов управления (типа кнопок, переключателей и т.п.) от повторного нажатия до завершения обработки текущего действия.
На моей практике, этому народ вообще не уделяет внимания и потом ты сидишь и ловишь в sentry странные креши, когда у тебя с одного экрана открывается не следующйи, а два следующих, или на сервер уходит два одинаковых запроса подряд и второй естественно обламывается, и тому подобное...
Вы думаете об этом когда кодите? Или может быть используете какие-то проверенные паттерны? Или тестируете такие вещи?
Eugene
😩эх помню помню таб меню делал - типа для нового пользователя доступны в начале ток 1 кнопка в меню, а для не нового все
те еще кастыли были.
а вообще интересная очень тема)
Eugene
🌚в любой момент можно поймать undefined is not
George
Друзья, а скажите, как часто и регулярно вы пишете код защищенный от "дребезга контактов" (это я условно называю, не знаю точной терминологии). Короче блокировку всяческих элементов управления (типа кнопок, переключателей и т.п.) от повторного нажатия до завершения обработки текущего действия.
На моей практике, этому народ вообще не уделяет внимания и потом ты сидишь и ловишь в sentry странные креши, когда у тебя с одного экрана открывается не следующйи, а два следующих, или на сервер уходит два одинаковых запроса подряд и второй естественно обламывается, и тому подобное...
Вы думаете об этом когда кодите? Или может быть используете какие-то проверенные паттерны? Или тестируете такие вещи?
Иногда делаю, когда по нажатию отправляется запрос, для этого в redux храню статус fetching для соответствующего вызова API
Gena
Вот я и думаю. Мы сейчас это никак системно не решаем. Частично в UI слое (благо с mobx это легко), просто заводим observable флаг, типа loading в классе компонента и блокируем все контролы, пока он true. Соотвественно в начале "действия" ставим его в true, в конце обратно в false. Частично разновидность того же, только флаг loading становится вычислимым и мониторит целую кучу логических параметров (в том числе из разных контроллеров есть способ сигналлинга).
Частично забиваем и ничего не делаем до "первого выстрела"...
George
Ну
Gena
И я сейчас немного переделываю один из контроллеров и вот думаю, мне эту защиту прям в контроллер встроить или оставить для UI.
Gena
Решил спросить что другие делаеют )
George
Я в приложении для всех вызовов API всегда ставлю fetching true/fakse, а учитывать это - уже позднее решаю, но как раз считаю что системно готов такую ситуацию обрабатывать
Eugene
Dmitry
Вот я и думаю. Мы сейчас это никак системно не решаем. Частично в UI слое (благо с mobx это легко), просто заводим observable флаг, типа loading в классе компонента и блокируем все контролы, пока он true. Соотвественно в начале "действия" ставим его в true, в конце обратно в false. Частично разновидность того же, только флаг loading становится вычислимым и мониторит целую кучу логических параметров (в том числе из разных контроллеров есть способ сигналлинга).
Частично забиваем и ничего не делаем до "первого выстрела"...
Это нормально. В принципе всегда нужно иметь возмножность отменить запрос, если он не прошел, потому что если ты открыл экран и на нем дернул запрос, а еще не выполнился, а ты уже ушел с экрана, то повторный вход дернет запрос еще раз. Плюс блокировать контролы по флагу loading ну и debounce конечно же
Sergey
Sergey
щас скину презу Ситника
Sergey
Gena
Это нормально. В принципе всегда нужно иметь возмножность отменить запрос, если он не прошел, потому что если ты открыл экран и на нем дернул запрос, а еще не выполнился, а ты уже ушел с экрана, то повторный вход дернет запрос еще раз. Плюс блокировать контролы по флагу loading ну и debounce конечно же
Дело не только в запросах. Тут любые действия выходящие за рамки одного цикла выполнения (runloop). При том не только по кнопкам. Примеры (в скобках чего бояться при дублях):
1. Кнопка вызывает запрос на сервер (два запроса расточительно, второй может завершиться ошибкой)
2. Кнопка вызывает открытие нового экрана. (откроются два экрана, может поломаться логика)
3. FlatList onEndReached (тут их даже значительно больше двух и это мега-расточительно)
Т.е. это некая общая проблема. А значит интуитивно у неё должны быть и некие "общие" решения. И вот я пока не понимаю как те паттерны, что мы используем сделать как бы умолчательными, чтобы программисту не приходилось постоянно держать в голове то, что у любого touchable должно быть разумно выставлено св-во disabled. Есть конечно вариант с "общей крутилкой" поверх всего, но он мне не очень нравится по некоторым причинам.
Пока в голове крутится что-то типа объекта Aciton, у которого можно как-то узнать, выполняется ли он ещё, и кастомных компонентов принимающих уже не onPress св-во, а этот action. Но это пока очень абстрактные мысли...
Gena
farwayer
logux — это про Optimistic UI все-таки, когда не надо ждать окончания запроса. Думаю, @gblack9 имеет в виду более общий паттерн. В redux-saga есть такая фигня, как takeEvery/takeLatest. В mobx/mst из коробки такого нету, но можно и самому накрутить. Я обычно не запариваюсь и флажок в сторе храню. По нему блочу контролы. Все равно отображение менять надо. Есть у меня RequestButton, которая кочует из проекта в проект.
Eugene
ну у меня под каждый стор/запрос практически свой флаг и с помощью их контроллю все🤔
farwayer
Какой тел с Android Pie для тестирования взять?
Kto?
Artem
Привет. Использую react navigation, можно ли как-то уже находясь в приложении с помощью переклбючателя менять тему всего приложения? В том числе и нижнего таббара реакт навигатора, и хедеры страниц всех?
Просто заранее поменять вроде как просто получается, но чтобы динамически это делать - не пойму как, ведь есть стили в навигаторе, которые по сути задаются при самой инициалзации. Возможно не знаю куда копать. Кто такое делал именно в РН, поделитесь опытом пожалуйста
Valya
Ребят добрый вечер, подскажите плз. Где почитать информацию как настраивать firebase fmc при изменении database?
Владимир
Всем привет
Владимир
У меня на сервере база содержит категории и записи к этой категории. Мне нужно подтянуть категории и к каждой категории вытащить записи
Владимир
Или как сделать 2 fetch сувать в один componentDidMount или как?
Sergey
промис же, если это водопад
Sergey
два фетча, один за другим
Владимир
два фетча, один за другим
В один componentDidMount?
А если в функцию фетч сунуть? Саму функцию тоже в componentDidMount?
Sergey
Sergey
чтоб когда на хуки перелез нормально всё было
Владимир
и немедленно вызвать, да
То есть нельзя, чтобы по onPress вызывать? К примеру когда нужно загрузить данные в лист? Или тут уже componentDidUpdate?