
Max
19.04.2018
08:33:54
getSnapshotBeforeUpdate(prevProps, prevState) {

Alex
19.04.2018
08:34:21

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

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

Google

Alex
19.04.2018
08:34:55

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

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

Dzmitry
19.04.2018
08:38:00
Например

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
Зачем в компоненты логику пихать?

John
19.04.2018
08:42:45

Artyom
19.04.2018
08:42:55

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

Max
19.04.2018
08:46:14
Нахуй на редакс завязываться?

Artyom
19.04.2018
08:46:47

Alex
19.04.2018
08:46:48

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

Max
19.04.2018
08:47:11
У меня тоже архитектура хуевая?

Alex
19.04.2018
08:47:33

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

Alex
19.04.2018
08:48:39

John
19.04.2018
08:49:20

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

Google

Denis
19.04.2018
08:50:03

Artyom
19.04.2018
08:50:58

Max
19.04.2018
08:51:37
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 реагировать только на изменение кол-ва символов в тексте.

Max
19.04.2018
09:01:45

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

Artyom
19.04.2018
09:03:44

Max
19.04.2018
09:03:51
блядь
НЕТ СТОРА

andretshurotshka?❄️кде
19.04.2018
09:04:00

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

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
Всем здрасьте!)

rbsx
19.04.2018
09:16:56

Vadim
19.04.2018
09:20:08

Cenator
19.04.2018
09:20:41

John
19.04.2018
09:21:19

Vladislav
19.04.2018
09:21:36

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
в сафари так же есть баг, который ломает все инпуты в иосе в модалке
и ниче живем