Danila
Я спросил где view отрисовывается
да, флет лист, нужно определить когда долистал до определенного итема
Серега
Ну давай, расскажи)
Например отслеживания состояния нескольких переменных, в результате изменения которых нужно выполнить какой то тяжелый код
Серега
Ну давай, расскажи)
или у тебя есть несколько взаимозависимых переменных которые зависят друг от друга, и тебе нужно после их изменения что то сделать
Серега
Так, я правильно понимаю что это первый твой запуск приложения, ты делал его через reavt-native init?
Dmitry
Например отслеживания состояния нескольких переменных, в результате изменения которых нужно выполнить какой то тяжелый код
Но ведь у тебя autorun будет запускаться на любое изменение этих свойств. Не проще ли сделать агрегацию в computed и на него вызывать reaction
Серега
Но ведь у тебя autorun будет запускаться на любое изменение этих свойств. Не проще ли сделать агрегацию в computed и на него вызывать reaction
вот в этом то и дело, что в отличии от @computed, который запускается сразу, в autorun есть возможность установить задержку например на 1мс, и код выполнится 1 раз после изменения всех переменных а не при каждом изменении каждой переменной.... Можно конечно setTimeout использовать - но зачем, если есть удобный инструмент
Серега
это точно проще, т.к. ты пишешь одну функцию, а не две
Серега
по сути то авторун это тот же компутед, только с возможностью более гибкой настройки
Dmitry
Стоять
Andrey
гайз, а каталину можно уже ставить?
Серега
а реакшн, это тот же авторун в общем то, разница только в способе передачи отслеживаемых переменных
Dmitry
Ты не прав сейчас
Alexsandr
Серега
гайз, а каталину можно уже ставить?
я поставил, вроде все ок. Только если у тебя несколько учетных записей icloud могут быть глюки, но они решаемые
Alexander 🐯
Ты не прав сейчас
++. Не думаю что сайд эффекты в computed делать это норм. Ну и вопрос передачи аргументов
Серега
в любом случае настоятельно рекомендую бэкап + запушить имеющиеся проекты))))
Серега
Ты не прав сейчас
я могу быть не прав, укажите в чем ошибаюсь (я только начал осваивать мобх
Dmitry
Доеду до офиса запилю пример, суть computed в том, что его изменение не вызовет реакцию если значение не изменилось
Dmitry
То есть в нем спокойно можно сделать условную агрегацию, которая возвращает true/false и на которую навешена реакция
Серега
Доеду до офиса запилю пример, суть computed в том, что его изменение не вызовет реакцию если значение не изменилось
так авторан тоже не выполнится если значение не поменялось... по крайней мере при дебуге у меня авторун срабатывает только если какая то переменная поменялась
Andrey
кто разобрался можно ли на андроиде бэджики с цифрами на иконку приложения лепить?
Dmitry
А самое главное, что вычисления в модели будут, а не на вью
Gena
так авторан тоже не выполнится если значение не поменялось... по крайней мере при дебуге у меня авторун срабатывает только если какая то переменная поменялась
Или в первый раз, если опцию включить... там есть две очень полезные, одна как раз чтоб при инициализации сработал, вторая - аналог дебаунса
Серега
да, это и есть разница между автораном и реакшином - реакшн конечно более строгий подход, т.к. ты явным образом указываешь обзервбл параметры, но в случае если они статичны, а если это например массив? В общем и computed и reaction и autorun используются каждый в своем случае
Серега
... массив имеется ввиду массив обзервбл элементов
Серега
у меня есть массив элементов, каждый элемент - это некий объект с реквизитами, часть реквизитов @observable. Массив постоянно меняется (элементы удаляются, появляются новые). В реакшин такой массив не передать, а autorun справляется (внутри autorun я мапом перебираю элементы) Возможно это не самое правильное решение, но если по скорости устраивает, то почему нет. Зато это несколько строчек кода всего, а так пришлось бы целую конструкцию пилить
Серега
статичны - это если у тебя заранее известен набор переменных и этот набор (состав) неизменен
Серега
возможно я ошибаюсь, но в реакшн передаются две функции: первая запускается 1 раз и определяет за какими переменными мы следим, вторая запускается каждый раз когда что то изменилось... Авторун каждый раз обновляет список обозреваемых переменных на которые наталкивается при выполнении своей функции, таким образом, если попалась новая обзервбл переменная при очередном запуске функции, он ее добавит в список отслеживания
Серега
поправьте если не прав
Dmitry
То он сам может быть observable
Серега
То он сам может быть observable
обзервбл массив, это не тоже самое что массив объектов с обзервбл реквизитами
Aleksei
Ребят, mobx это конечно хорошо, но его детали не оч к RN относятся
Серега
работает же, при том весьма производительно
Серега
у меня в приложеньке тысячи обзервбл значений, и вполне себе летает
Aleksei
работает работает, но обсуждение его деталей, выходит за рамки этого чата
Серега
конечно над оптимизацией надо думать)
Artur
Всем привет! Помогите разобраться с проблемой. Нужно показать модалку, используя react-native-router-flux, но вылетает warning: "Cannot update during an existing state transition". Нужная Scene отображается на секунду, а затем появляется это предупреждение и сцена пропадает. Если изменю проп сцены 'type' на "replace", тогда всё работает, но тогда я не могу сделать Actions.pop() внутри той сцены (на сколько я понял, из-за того, что стэк заменяется этой сценой). Вот структура App, последняя Scene: https://gist.github.com/arthedza/28e49a92aa892c8a8837edd3e35dce38
Серега
работает работает, но обсуждение его деталей, выходит за рамки этого чата
я считаю что управление стэйтом приложения это один из важнейших вопросов
Aleksei
я считаю что управление стэйтом приложения это один из важнейших вопросов
ну так для этого есть чаты где обсуждают стейт приложения. RN специфичного тут ничего нет, по крайней мере именно в вашем обсуждении
Alexander 🐯
работает работает, но обсуждение его деталей, выходит за рамки этого чата
Это как в чате вью, можно было обсуждать только темы напрямую про вью?) Закончилось тем, что появился второй чат :)
Maxim 📱 D
работает работает, но обсуждение его деталей, выходит за рамки этого чата
Зато новички задумаются об использовании этих инструментов)
Aleksei
Это как в чате вью, можно было обсуждать только темы напрямую про вью?) Закончилось тем, что появился второй чат :)
я не знаю читали вы описание группы или нет, но там ясно написано, что тут обсуждается. есть чаты помойки где обсуждают все подряд, у нас не так
Dmitry
Прошу сюда за обсуждением
Dmitry
https://t.me/rnsandbox
Aleksei
спасибо за помойку =)
заметь, я про твой канал ничего не сказал, это ты уже сам додумал
Серега
Алексей, ты я так понимаю хозяин группы?
Alexander 🐯
я не знаю читали вы описание группы или нет, но там ясно написано, что тут обсуждается. есть чаты помойки где обсуждают все подряд, у нас не так
Звучит так, как будто мы тут фильмы обсуждаем. Ну ок. Понятно отношение админов к косвенным темам. Всё очень серьёзно
Aleksei
Звучит так, как будто мы тут фильмы обсуждаем. Ну ок. Понятно отношение админов к косвенным темам. Всё очень серьёзно
вы бы с таким рвением на проблемы и вопросы других реагировали, вот это было бы похвально
Alexander 🐯
Серега
Если мы тут будем обсуждать только ui компоненты, то чат умрет)
Серега
Интересно же почитать пообсуждать подходы в разработке, js и т.п., что позволит разрабатывать на rn продуктивнее
Aleksei
Если почитаете, то помогаю и отвечаю по мере своих знаний
вот такое похвально, вы молодец значит. просто надо поменьше флуда, чтобы вопросы других не пропадали в ленте
Dmitry
Интересно же почитать пообсуждать подходы в разработке, js и т.п., что позволит разрабатывать на rn продуктивнее
ну так я скинул чат, милости прошу, за архитектуру я всегда рад пообщаться)
Серега
изменил)
а в функции goBack что происходит?
Vladimir
Посоветуйте толковый курс по React-Native на русском, можно видео или текстом, платно или бесплатно
Серега
насколько я понял срабатывает изменение стейта роута, при этом вызывается goBack в которой происходит вызов изменения стейта, попробуй сеттаймаут
Серега
Посоветуйте толковый курс по React-Native на русском, можно видео или текстом, платно или бесплатно
вбей в ютубе "уроки react native" там в топе хороший курс вылезет
Maxim 📱 D
Actions.pop()
onBack={goBack()} а если это написать так onBack={() => goBack()}
Серега
Actions.pop()
onBack={goBack()}... я не знаком именно с этой библиотекой, но может быть у тебя в этой строчке двойной goBack?
Artur
onBack={goBack()} а если это написать так onBack={() => goBack()}
вроде не играет роли, кажись уже менял. Да и не в этом суть вопроса.
llllllllllllll
Спасибо большое за курсы, не знал что Вы тут админ)
Серега
onBack={goBack()}!!!! замени на onBack={goBack} (удали скобки)
Artur
onBack={goBack()}!!!! замени на onBack={goBack} (удали скобки)
Роли не играет... Вообще это удалил, так как в компоненте Роутер уже определил backAndroidHandler