Никита
mobx медленнее? медленнее разрабатывать возможно и то не факт. Как раз то что mobx быстрее всегда отмечают в сравнениях с redux
Vitaliy
а что будет если я с помощью push добавлю несколько одинаковых роутов, а потом попробую перейти к нему с помощью navogate? И, а что значит "сбросит всё, что добавлено после него"? Удалит то, что выше(добавлено позже) роута, к которому мы переходим?
не тестировал, но теоретически - останется только самый первый, остальное выпилится из стека.
> Удалит то, что выше(добавлено позже) роута, к которому мы переходим?
да, всё что добавлено позже - удалит
Михаил
Никита
я из этого текста ничего не понял. Но изменение состояния redux абсолютно так же вызовет волну перерендера, но за счет иммутабельности redux это будет дольше - обновятся те кому было не надо, если не очень аккуратно мапать state, придется постоянно копировать state, чтобы обеспечить иммутабельность
Да и у людей постоянно проблемы с тем что где то не выполнили еще одно копирование - поменялось поле в объекте который находится в массиве: нужно скопировать корневой state, массив, сам объект и у копии объекта поменять это поле
Andrei
для того чтобы минимизировать "обновятся те кому было не надо" придумали reselect
Никита
для общего развития я поставил в планы посмотреть стек который так активно пиарит Дима, но отношусь к нему скептически (к стеку), переубеждать меня смысла нет. Со своей стороны ветку про aws, graphql и прочее я закончил
Никита
для того чтобы минимизировать "обновятся те кому было не надо" придумали reselect
то что из коробки вроде как идет в mobx
и все равно от копирований это не спасает
чтобы понятно было - сейчас я использую redux, mobx щупал только для себя. Вообще весь этот спор достаточно бесполезен - писал бы на mobx, не стал бы пересаживаться на redux, что бы тут ни написали. Ну и в обратную сторону тоже работает. Да и не думаю что кто-то кинется
Мое мнение: большой проект берешь то с чем отлажена работа; что то небольшое - можно пощупать новое. Знать плюсы и минусы полезно, но раздувать спор из этого смысла нет
Andrei
ничего против не имею. сам придерживаюсь аналогичного подхода. серебренной пули не бывает.
Dmitry
А я вот наоборот увидел просто охеренную архитектуру с redux/redux-saga/redux-actions. Mobx не заходит потому что вроде как нельзя в функциональные компоненты сделать inject
Dmitry
mobx / effector
на redux я не смог за несколько лет найти нормальных конфигураций
для мелких приложений норм, чуть сложнее - всё плохо
%username% 🍺
redux полностью заменяется через контекст и useReducer, при этом как правило нет необходимости содержать дорогой глобальный стэйт и обслуживать его на каждый чих
Korg
Korg
Привет всем, подскажите как пофиксить такую ошибку?
при подключении google signin
Korg
Korg
откуда взялся servise-id2? и куда его добавить?
Anonymous
Всем привет. Какая библиотека подойдет для работы с хранилищем андроида 5 версии
Anonymous
react-native-fs насколько я понял не подходит
ㅤ
Хеллоу, ребята подскажите пожалуйста по TestFlight
Поставил Distribution certificate
сейчас вылазит ошибка, что нет прав (я Developer) создать provision profile
Xcode 11
создали Distribution provision profile
cейчас вылазит Profile doesn't include the selected signing certificate?
%username% 🍺
Korg
Ну а в чем разница?
Представим есть 20 эндпоинтов, которые возвращают данные, которые успешно должны быть расшарины на весь проект. Так же данные имеют сложную структуру вложенностей. Так же для усложнения нужно делать например некий запрос только после ответа с определённого ендпоинта с использованием данных из ответа первого.
если взять редакс, то все вызовы выносятса в саги, или эпики, или санки, где легко сделать второй запрос автоматом после первого,
для вытаскивания данных из нужного слоя вложенности юзаем селекторы,
был опыт тестирования чат бота на реакте, так там саги выполняли по 3-4 запроса последовательно, и была очень нехилое разветвление логики
Теперь я пытаюсь представить как это сделать на контексте и редьюсере, и как-то сложно выходит.
Я конечно могу очень сильно ошибаться, но для каждого кейса своё решение, если это простая апка, с простым набором данных, с минимум апиколов, то пожалуйста, если это что-то большое и сложное, как чат бот, то логика общения с апишкой должна быть в абстрактном слое отдельно от view представления, т.е. в редаксе.
Korg
ну и для RN и redux есть persist либа, которая поможет избежать потери данных при закрытии приложения, и не нужно городить свой огород для сейва данных в асинксторедж
Korg
логика общения с апишкой должна быть в абстрактном слое отдельно от view представления, т.е. в редаксе.
* не именно в редаксе, а в приконекченных эпиках.сагах.санках к редаксу
Daniil
Либо все через чилдрены передавать
%username% 🍺
Представим есть 20 эндпоинтов, которые возвращают данные, которые успешно должны быть расшарины на весь проект. Так же данные имеют сложную структуру вложенностей. Так же для усложнения нужно делать например некий запрос только после ответа с определённого ендпоинта с использованием данных из ответа первого.
если взять редакс, то все вызовы выносятса в саги, или эпики, или санки, где легко сделать второй запрос автоматом после первого,
для вытаскивания данных из нужного слоя вложенности юзаем селекторы,
был опыт тестирования чат бота на реакте, так там саги выполняли по 3-4 запроса последовательно, и была очень нехилое разветвление логики
Теперь я пытаюсь представить как это сделать на контексте и редьюсере, и как-то сложно выходит.
Я конечно могу очень сильно ошибаться, но для каждого кейса своё решение, если это простая апка, с простым набором данных, с минимум апиколов, то пожалуйста, если это что-то большое и сложное, как чат бот, то логика общения с апишкой должна быть в абстрактном слое отдельно от view представления, т.е. в редаксе.
Ну тут все проще совсем чуток, что дает нам redux? Он дает нам стор и persist (который по сути сериализует данные в AsyncStorage) и dispatch. Больше нам от него ничего не надо. Reducers мы пишем сами, саги пишем сами и actions вызываем сами, то есть редакс нам нужен только до тех пор, пока мы не обновились до контекста. У редакса опять же есть эклсистема дебаггеров, это жирный плюс, однако с практической точки зрения, ребята тз реакта сделали все инструменты для того, чтобы отказаться от внешних зависимостей. Что дергать в саге - не важно, и там и там есть dispatch, редьюсеры - useReducer отлично работает.
Однако есть такая штука, как привычка и знакомые нам инструменты, зарекомендовавшие себя со временем, трудно исключить из работы. Тут ничего не поделаешь.
По поводу большого стэйта - всем рекомендую разбить его на много мелких, увы поддержка и валидация состояния на клиенте и синхронизация его с бэкендом это больно и дорого
Daniil
И возможно тогда будет часть голого редакса
Daniil
Korg
Проблема не в инструменте. плюсую
Korg
ну парни, просветите меня, как используя контекст содержать в нём данные из 20 эндпоинтов? и где делать запросы?
%username% 🍺
Вопрос в другом - в каждом ли месте вам нужен доступ ко всему состоянию? Вы же все равно селекторы пишете для доступа к определенной его части
%username% 🍺
А потом эти селекторы переиспользуете в разных компонентах для доступа к данным
Andrei
тут скорее вопрос что делать если рано или поздно он, доступ этот, понадобится)
%username% 🍺
Самолет может полетит, а может не полетит
%username% 🍺
Если понадобится, то ради одного кейса данные можно собрать в одну кучу используя useContext
Andrei
да понятно что можно. можно и зайца курить научить как говорится. вопрос сколько велосипедов будет написано и кто это все потом будет поддерживать)
%username% 🍺
Так, я тут набросил, могу как-нибудь рассказать как это работает в большом приложении с кучей распределенных данных (беттинг и форекс) а сейчас всем пиво, господа 🍺
Daniil
https://gist.github.com/XaveScor/99431c573b53b8a0c41fb3b5fec522bc в принципе полезно в плане ознакомления
Korg
спасибо, сейчас ознакомимся
Andrei
Gennadiy
Кто-нибудь сталкивался с необходимостью динамически изменять доступность таба в TabNavigator? (React Navigation 1.5)
Dmitry
использую
react-native-modal, как мне перекрыть модалкой весь экран, потому что при свайпе вниз скрывается слайдер на заднем плане
Anonymous
А
подскажите плз билдить через expo или билдить через xcode, разница в чем для приложения, поддержка, зависимости какие и тд?
ㅤ
Привет
Подскажите есть кто билдил для TestFlight? Может сможете ответить на пару вопросов?
Vitaliy
Denis
Подскажите, как вы обрабатываете кнопки в хэдере?
У меня есть кнопка Save, в headerRight. Если в форме новые значения совпадают с предыдущими, кнопку нужно задизейблить. Делаю это через setParams, и возник вопрос, можно ли сделать по другому?
Сталкивались ли вы с тем, что setParams работает достаточно медленно?
Vitaliy
Denis
Anonymous
Юрий
всем привет. Посоветуйте пож хороший text editor на RN
Юрий
спс. уже разобрался.
*я имел ввиду другое
Юрий
react-native-pell-rich-editor
Serhii
Всем привет, почему тачаблопасити с текстом внутри не реагирует на onPress. onPress висит именно на ней, текст внутри реагирует на нажатие, а сама область вообще игнорит, хотя примеры в документации говорят, что должна реагировать
Timur 👨💻
Serhii
а точно, она была во вьюшку обернута, которая и была нужной ширины
Serhii
спасибо
Alexander
После апдейта expo sdk до 37 версии, стали падать андроид билды на серверах экспо с ошибкой:
> Task :app:mergeReleaseResources FAILED
[stderr] FAILURE: Build failed with an exception.
[stderr] * What went wrong:
[stderr] Execution failed for task ':app:mergeReleaseResources'.
[stderr] > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
[stderr] > AAPT2 aapt2-3.5.3-5435860-linux Daemon #2: Compile '/app/turtle/workingdir/android/sdk37/android-shell-app/app/src/main/res/drawable-xxxhdpi/shell_launch_background_image.png' timed out, attempting to stop daemon.
Может кто-нибудь сталкивался? что исправляли?
Nail
А кто-нибудь работал с аудио-плейбеком?
Nail
Есть какой-то эквивалент Web Audio?
don
Знаю js стоить ли изучать Java и делать app на java или лучше react
Ayaz
Korg
Привет всем,
делаю гугл авторизацию, и что-то плотно застрял,
не юзаю firebase
застрял на шаге добавления SHA-1 в консоль гугла, там тупо нет такого поля как в инструкциях...
Может кто подкинуть толковый гайд\туториал\инструкцию?
Шамиль
Обучаюсь, как работа с Firebase. Выбрал бд Realtime Database. Там есть метод on(), при помощи которого можно записаться на событие изменения бд. Теперь не понимаю, как отписаться от этого события. В документации посмотрел, но не понял. Можете подсказать?
Никита
предположу на вскидку:
export default new AppStore()
Никита
ну вот это должно быть больше похоже на правду. Залогать надо JSON.stringify например, а то mobx в свои прокси все оборачивает
Никита
в общем в store вам приходил не экземпляр класса, а сам класс. То что предложил я не в целом должно работать, но это не правильно, как мне кажется. Должен быть какой то класс который создает эти экземпляры
༼ つ ◕_◕ ༽つ
как заскролить KeyboardAwareScrollView в самый низ при нажатии на инпут
༼ つ ◕_◕ ༽つ
༼ つ ◕_◕ ༽つ
???
Олег
все привет, может кто стакливался, все иконки залиты, но при сборке приложение без иконки, куда копать вообще?
Konstantin
Олег
иконка в ОС, которая в списке прилаг отображается
Олег
и именно андроид
%username% 🍺
AndroidManifest.xml
android:icon
%username% 🍺
там же есть еще android:roundIcon
%username% 🍺
у меня поле android:icon выглядит так android:icon="@mipmap/ic_launcher"