
Denis
15.02.2018
09:54:29
для современного апликейшЕна

ALFer
15.02.2018
09:54:34

Andrey
15.02.2018
09:54:38

Andrey
15.02.2018
09:54:54

Google

Дмитрий
15.02.2018
09:54:57

Stepan
15.02.2018
09:55:00

John
15.02.2018
09:55:48
Народ, как боретесь с race condition? Словил подонка в react-formal. Сперва подумал, что я с ума сошел.

Andrey
15.02.2018
09:56:19

Vitaly
15.02.2018
09:56:24
мне кажется что с 2016 ничего не поменялось, основные либы все теже, только апи поменялось немного

ALFer
15.02.2018
09:56:24
Яваскрипт однопоточен, какие рейс-кондишены?

Andrey
15.02.2018
09:56:33
Не стоит так говорить в js чатике)

John
15.02.2018
09:56:45

?
15.02.2018
09:56:56

ALFer
15.02.2018
09:57:18
возможно мы говорим о разных рейс-кондишенах
конкретней вопрос можно?

Stepan
15.02.2018
09:58:42
Рейс кондишен это не только про разные потоки
Асинхронные действия тоже могут к нему привести

Google

Игорь
15.02.2018
09:59:31

ALFer
15.02.2018
09:59:53
та ёмаё...

Andrey
15.02.2018
10:00:06

John
15.02.2018
10:02:23
конкретней вопрос можно?
Конкретный кейс. Нужно воткнуть календарь с периодом, реализовал это в виде компонента, в котором два скрытых Form.Field и сам компонент календаря. Календарь скидывает выбранный период одним куском (т.е. сразу и начальную, и конечную дату), для обоих Form.Field вызываю props.onChange и в форму попадает значение только одного из них. Если перед вызовом props.onChange делаю случайную задержку, то всё работает. Посадил onChange на всю форму, до формы долетают обе даты, но сохраняется по итогу только одна.

Artyom
15.02.2018
10:03:10

Stepan
15.02.2018
10:03:49
Покажи код обработчика

John
15.02.2018
10:04:21

Alex
15.02.2018
10:04:31
Ребята почему у меня на ноуте крашится и вебпак ругается, а на компе всё норм ? :c

Stepan
15.02.2018
10:04:38
Ну я имею в виду, как сохраняешь

Alex
15.02.2018
10:04:47
ругается на пути
что не так (

Andrey
15.02.2018
10:05:18
Используй пути, относительно корня проекта.

Nikita
15.02.2018
10:05:58
Относительно файла же, нет?

Artyom
15.02.2018
10:06:06
Растет обрастает
https://gist.github.com/artalar/c46b836631d57d5b3a7328b97077d46b

Max
15.02.2018
10:06:11

Andrey
15.02.2018
10:06:15

John
15.02.2018
10:06:19

Stepan
15.02.2018
10:06:23

Google

Andrey
15.02.2018
10:06:25
Макс шарит.

Stepan
15.02.2018
10:06:52

John
15.02.2018
10:08:14
Я тут с полгода назад был виновником целого холивара, после которого перешел на formal. А теперь он стал днищем...

Andrey
15.02.2018
10:08:28
@ZeroBias А ты прав про "дружелюбное сообщество")

Max
15.02.2018
10:08:36
чот я давно тут не сидел днем

ALFer
15.02.2018
10:08:37
Конкретный кейс. Нужно воткнуть календарь с периодом, реализовал это в виде компонента, в котором два скрытых Form.Field и сам компонент календаря. Календарь скидывает выбранный период одним куском (т.е. сразу и начальную, и конечную дату), для обоих Form.Field вызываю props.onChange и в форму попадает значение только одного из них. Если перед вызовом props.onChange делаю случайную задержку, то всё работает. Посадил onChange на всю форму, до формы долетают обе даты, но сохраняется по итогу только одна.
увы, формал только палочкой тыкал. Но насколько я читал его доки он не будет так работать. Возможно есть смысл сэмулировать этот календарь не 2мя полями, а одним. Использовать фишку с children === function
<Field name='birthDate'>
{(props, Input) =>
<DataProvider>
<Input {...props} />
</DataProvider>
}
</Field>

Владимир
15.02.2018
10:08:39

Artyom
15.02.2018
10:09:52
Пол года - что-то много. Через 2 месяца уже устаревать начинает

Stepan
15.02.2018
10:10:04
((

John
15.02.2018
10:10:07

Andrey
15.02.2018
10:10:31

ALFer
15.02.2018
10:11:03

Владимир
15.02.2018
10:11:06

Andrey
15.02.2018
10:11:19

Stepan
15.02.2018
10:11:24

Max
15.02.2018
10:11:27

John
15.02.2018
10:12:11

Artyom
15.02.2018
10:12:13
Кстати, а есть какие статические анализаторы помимо линтера, что бы помощнее? Например неиспользуемые экпорты показывать линтер (?) не умеет?

Stepan
15.02.2018
10:12:13

Google

Max
15.02.2018
10:12:26
спасибо что понял

Stepan
15.02.2018
10:12:33

Artyom
15.02.2018
10:12:41
=(

Max
15.02.2018
10:12:50

ALFer
15.02.2018
10:12:51

Stepan
15.02.2018
10:13:17

Nikolay
15.02.2018
10:13:44
тэкс ну я нашел почему, селектор почему то каждый раз новый массив вложенных комментов возвращает =\. его пофиксил стало точечно рендерить только то что нужно

ALFer
15.02.2018
10:14:00

Stepan
15.02.2018
10:14:16

Andrey
15.02.2018
10:20:49
Парни, вопрос, юзаю styled components и css переменные + polished и хочу модифицировать значение из css переменной (darken, например) - затестил всё возможное, но что-то нифига не получилось. Делал ли кто-то такое и если да, то как? Мой скилл юзать гугл к решению не привел


Vitaly
15.02.2018
10:21:54
Конкретный кейс. Нужно воткнуть календарь с периодом, реализовал это в виде компонента, в котором два скрытых Form.Field и сам компонент календаря. Календарь скидывает выбранный период одним куском (т.е. сразу и начальную, и конечную дату), для обоих Form.Field вызываю props.onChange и в форму попадает значение только одного из них. Если перед вызовом props.onChange делаю случайную задержку, то всё работает. Посадил onChange на всю форму, до формы долетают обе даты, но сохраняется по итогу только одна.
Скорее всего onChange мержит предидущий стейт с новыми данными, а стейт обновляется только на следующем тике, по-этому добавляется только одно значение. Правильное решение - обновить состояние формы ручками(хз как) и внести изменение сразу для двух филдов, ну и на крайняк использовать setTimeout(0)

Dmitrii
15.02.2018
10:21:59
Господа, может кто скинуть пример с гитхаба или как-нибудь еще, как вы работаете с данными с сервера?

John
15.02.2018
10:22:02
Я тут за пять минут переписал на хранение стейта формала в redux. И даже там я ловлю race condition. А в redux каков best practice для race condition?

ALFer
15.02.2018
10:22:54

Nikolay
15.02.2018
10:23:07

Andrey
15.02.2018
10:23:22

ALFer
15.02.2018
10:24:19

Andrey
15.02.2018
10:24:50
выглядит это вот так и вот к этому var(--color-primary) мне надо приделать darken из polished, добавить еще одну переменную - не вариант, переписать - тоже

John
15.02.2018
10:27:15
Откуда в редаксе рейс-кондишны?
В action:
return(
{
type: FORM_FIELDS_CHANGE,
payload: searchConditions
}
);
В редьюсере:
case FORM_FIELDS_CHANGE:
return (
{
...state,
searchConditions:
{
...action.payload
}
}
);
Экшн протоколирую в консоль, приходят обе даты, а значит и в редаксе рейс бывает.

Google

Andrey
15.02.2018
10:27:24

Stepan
15.02.2018
10:29:03

Vitaly
15.02.2018
10:29:13

Nikolay
15.02.2018
10:29:29

Andrey
15.02.2018
10:29:31

Stepan
15.02.2018
10:29:49