@react_js

Страница 3722 из 5115
Max
19.04.2018
08:33:54
getSnapshotBeforeUpdate(prevProps, prevState) {

Alex
19.04.2018
08:34:21
getSnapshotBeforeUpdate(prevProps, prevState) {
Но он может юзать this.props и this state

John
19.04.2018
08:34:24
Не, там все верно
А зачем лишние присваивания? Сделай так: const { values } = props; if( !values ) return null; Дальше все как было, только без условной операции

Max
19.04.2018
08:34:30
да, я чот туплю

Google
Max
19.04.2018
08:34:56
тогда вообще все ок

Artyom
19.04.2018
08:37:05
Объясните мне, пожалуйста, еще раз. Я, видимо, туплю. Зачем может понадобится сравнивать предыдущие и новые пропсы и это не будет результатом кривой архитектуры?

Artyom
19.04.2018
08:38:14
Dzmitry
19.04.2018
08:38:27
А мне не нужно ее каждый раз обновлять

John
19.04.2018
08:38:30
Объясните мне, пожалуйста, еще раз. Я, видимо, туплю. Зачем может понадобится сравнивать предыдущие и новые пропсы и это не будет результатом кривой архитектуры?
Потому что тебе может понадобиться вызывать экшны редакса при строго определенных изменениях. Есть такие изменения в пропсах, где нужно просто рендер по-новой сделать, а есть такие, где нужно что-то глобальное замутить.

Artyom
19.04.2018
08:40:39
Зачем в компоненты логику пихать?

Google
Alex
19.04.2018
08:43:07
@Candidate7 у тебя же что-то типа селекта с автодополнением или опшены которого зависят от чего-то внешнего. Тут нужно три компонента или два. Один принимает значения стора и значение переменной от которой зависят опшены, если значение изменилось, то нужно вызвать экшон и загрузить новые опшены. Опшены также находятся в этом компоненте и доставляются в него из стора. После в рендере в селектор нужно передать только конечные данные

Artyom
19.04.2018
08:43:26
Зачем повышать связанность модулей \ ф-й \ компонентов?

Alex
19.04.2018
08:43:36
А ты как я понял пытаешься сделать всё в одном компоненте и прислать данные и определить как их отображать

Artyom
19.04.2018
08:43:43
Это же нарушает односторонний датафлоу (в какой-то степени). А главное ухудшает дебаг, увеличивает вероятность ошибки

Max
19.04.2018
08:45:48
Ничего это не нарушает

Не придумывай

John
19.04.2018
08:45:55
@Candidate7 у тебя же что-то типа селекта с автодополнением или опшены которого зависят от чего-то внешнего. Тут нужно три компонента или два. Один принимает значения стора и значение переменной от которой зависят опшены, если значение изменилось, то нужно вызвать экшон и загрузить новые опшены. Опшены также находятся в этом компоненте и доставляются в него из стора. После в рендере в селектор нужно передать только конечные данные
Это в том случае, если ты точно знаешь, сколько и какие именно опшны тебе нужны. А в моем случае я просто добавляю <Select name="someName" entity="SomeEntity" context={ someFieldsValues } /> и точно знаю, что все опшны для SomeEntity подгрузятся. И если я вдруг решу этот селект удалить, то я его просто удаляю из формы и не грею себе мозг воспоминаниями "а не грузил ли я где-нибудь значения для него?"

Artyom
19.04.2018
08:46:47
Нахуй на редакс завязываться?
Ну в примере пропсы от редакса

John
19.04.2018
08:47:00
Нахуй на редакс завязываться?
Потому что эти зависимые поля могут динамически добавляться. Например, мне нужно грузить улицы в зависимости он населенного пункта. А у дома может быть несколько адресов (угловой дом, улицу переименовали и т.д.)

Max
19.04.2018
08:47:11
Ну в примере пропсы от редакса
А я тебе уже в который раз говорю что редакса у меня нет

У меня тоже архитектура хуевая?

Max
19.04.2018
08:48:08
И даже когда был держать все говно приложения я не собирался

Потому что куча случаев когда локальный стейт удобнее

Artyom
19.04.2018
08:49:43
@syabro Я говорю о том, что пропы приходят от какого-то стейта, не важно какого. Стейт меняется через какой-то хендлер. И вот зависимость от нового стейта должна в этом же хендлере (или мидлваре какой-то) и обрабатываться. Зачем делать изменения стейта, а потом их пускать куда-то вних к компоненту, что бы он решил что с этими изменениями сделать и опять дернул что-то для работы со стейтом, зачем увеличивать количество элементов в причинно-следственных связях?

Google
Denis
19.04.2018
08:50:03
Объясните мне, пожалуйста, еще раз. Я, видимо, туплю. Зачем может понадобится сравнивать предыдущие и новые пропсы и это не будет результатом кривой архитектуры?
Это вполне себе может быть обычный самодостаточный компонент на реакте, который при смене значения пропса может менять свой стейт.

Max
19.04.2018
08:51:37
Слишком абстрактно. Дайте конкретный пример
react-router + страница пользователя

rr передает id из урла

через пропсы

при смене id надо дернуть апи

вот тебе простой пример

Alex
19.04.2018
08:54:19
У меня так и есть
тогда логику проверки изменения вынести в провайдер на тот же getSnapshotBeforeUpdate, а решать нужно обновить или нет в sholdComponentUpdate

Artyom
19.04.2018
08:55:07
при смене id надо дернуть апи
Где. Меняется.Id? Кто его меняет? Единственный, реально уникальный кейс - это нажатие кнопки назад в браузере, которую мы как бы не контролируем. Но это прям исключение. Все остальное в приложении контролируется через обработчики, которые мы пишем руками

Max
19.04.2018
08:55:19
да кто угодно

ты щас все пытаешься свести к архитектуре которая у тебя сейчас вообще не понимая что могут делать по разному

смена урла может быть откуда угодно

Max
19.04.2018
08:56:28
урл это такой же независимый источник данных как и стор редакса например

?
19.04.2018
09:00:52
ребята

чтоб вы делаете с этим : Uncaught Error: only one instance of babel-polyfill is allowed

?

Artyom
19.04.2018
09:01:11
смена урла может быть откуда угодно
ее можно отследить и этим должен заниматься отдельный модуль

Abu
19.04.2018
09:01:34
смена урла может быть откуда угодно
Эт разве хорошо? Ну типа менять урл в рандомных местах?

Denis
19.04.2018
09:01:41
Слишком абстрактно. Дайте конкретный пример
Например компонент который рендерит канвасом текст. Текст передаётся в пропсы компоненту. Чтобы его отрендерить, нужно заранее посчитать размеры канваса. В cDU при смене пропса с текстом пересчитываем размеры и применяем их к канве. Можно усложнить данный пример. Давайте обусловимся, что у нас моноширный шрифт и пересчитывать размеры нужно только в том случае, если кол-во символов в тексте изменится. Вот дабы не пересчитывать эти размеры каждый раз, будем в cDU реагировать только на изменение кол-ва символов в тексте.

Google
Max
19.04.2018
09:02:09
нихуя не должен никакой отдельный модуль ничем заниматься

Artyom
19.04.2018
09:02:17
начинается
да потому что сравнение старых и новых пропсов - костыль

Max
19.04.2018
09:02:29
это источник данных с которым можно работать

если ты с ним работать не умеешь — твои личные проблемы

Admin
ERROR: S client not available

Max
19.04.2018
09:03:01
так и будешь миддлом сидеть всю жизнь

Alex
19.04.2018
09:03:05
да потому что сравнение старых и новых пропсов - костыль
разве не компоненту решать когда дёргать call, а когда нет?

Artyom
19.04.2018
09:03:44
да потому что сравнение старых и новых пропсов - костыль
Это не ответственность компонента. Есть сущность - стор, она содержит: стейт, подписку \ отписку и хендлеры для изменения стора. Сущность стор отвечает за логику и должна быть обособлена

Max
19.04.2018
09:03:51
блядь

НЕТ СТОРА

Max
19.04.2018
09:04:01
ЛОКАЛЬНЫЙ

Artyom
19.04.2018
09:04:19
НЕТ СТОРА
я не про редакс. Я про абстрактную сущность стор

Max
19.04.2018
09:04:30
да, прикинь, компонент и есть стор

Artyom
19.04.2018
09:04:41
Может быть, да

стор: 1) стейт 2) подписка \ отписка 3) хендлеры

Max
19.04.2018
09:05:25
у меня есть охуительный компонент который зависит только от пропсов, вся логика лежит в одгном месте и удобно читается

нахуй мне какую-то ебанину городить в виде твоих предложенных хулиардов абстракций?

Google
Artyom
19.04.2018
09:07:38
у меня есть охуительный компонент который зависит только от пропсов, вся логика лежит в одгном месте и удобно читается
>_< Ты противоречишь сам себе. пропсы приходят от какого-то стора = уже не 1 обособленный компонент. У тебя абстракция не с той стороны

Max
19.04.2018
09:07:50
ты заебал

перечитай выше

пропсы приходят из RR

Artyom
19.04.2018
09:08:52
пойду работать, кароч.Я услышал тебя, Макс. Я уважаю твой опыт и подумаю над тем что ты сказал

Vladislav
19.04.2018
09:09:51
Добрый день. Подскажите, как в safari отключить скрол в модалке? В данный момент использую scroll-lock. Он отрабатывает хорошо везде кроме как safari.

Alex
19.04.2018
09:15:59
Всем здрасьте!)

Vadim
19.04.2018
09:20:08
Vladislav
19.04.2018
09:21:36
Так-то не про CSS группа
понимаю,оффтоп

rbsx
19.04.2018
09:21:56
тебе событие надо отменить или что?

это не про то
почему? если визуально нудо убрать, то поможет

Vadim
19.04.2018
09:25:01
почему? если визуально нудо убрать, то поможет
Когда открывается модалка, нужно убрать возможность скролить контент под модалкой. В сафари есть баг, при котором контент скролится.

Cenator
19.04.2018
09:28:13
не баг а фича!

Женя
19.04.2018
09:29:50
в сафари так же есть баг, который ломает все инпуты в иосе в модалке

и ниче живем

Страница 3722 из 5115