
Блаженный
10.05.2017
01:02:28
Народ, это нормальны, что я для всякой мелочи типа текущий текст в поле использую обычный state реакта, а не redux?

Michael
10.05.2017
01:32:21
нормально: передаёте в компонент инициализирующий текст и функцию изменения, на событие изменения внутри компонента через внутренний стэйт меняете текст и вызываете внешнюю функцию, передавая ей эвент или сам новый текст

Maxim robox
10.05.2017
01:50:23
@evgenyrodionov спам

Блаженный
10.05.2017
01:51:51

Google

Блаженный
10.05.2017
01:51:52
?

Michael
10.05.2017
01:52:16
если там условно 1 контейнер и внутри компоненты и всё, то я не вижу сходу смысла в redux.
если это большое SPA, то redux

Maxim robox
10.05.2017
01:53:31

Блаженный
10.05.2017
02:00:42
Ок, значит я все делаю правильно. Спасибо


Alexandre
10.05.2017
07:15:10
кстати про стейт. Какой рассово верный способ в компонентах отлавливать вызов какого-то редюсера? Например есть ряд компонентов, в них есть какой-то локальый стейт, который только для этого компонента, в других местах эти данные не нужны, они скорее больше декоративные, поэтому по хорошему выносить их в глобал стор особо смысла нет. Но при этом надо локальный стейт изменять в какой-то ситуации. Например по выбору формы, если форма очень сложная. Или получили что-то из бекенда, надо обновить вьюшки. Напрашивается обсервер шаблон.
Видится три варианта на вскидку:
1 - вынести таки все данные в глобал стор и забить.
2 - в компоненте приконнектиться к store и заюзать subscribe(), отслеживать изменения и изменять локальный стейт если надо. Куча костылей.
3 - внутри редюсера тригерить нативный эвент на window например, а в нужных компонентах addEventListenter и ловить событие. Но кажется не совсем реакт подход.


pepsi ¯\_(ツ)_/¯
10.05.2017
07:18:04
кстати про стейт. Какой рассово верный способ в компонентах отлавливать вызов какого-то редюсера? Например есть ряд компонентов, в них есть какой-то локальый стейт, который только для этого компонента, в других местах эти данные не нужны, они скорее больше декоративные, поэтому по хорошему выносить их в глобал стор особо смысла нет. Но при этом надо локальный стейт изменять в какой-то ситуации. Например по выбору формы, если форма очень сложная. Или получили что-то из бекенда, надо обновить вьюшки. Напрашивается обсервер шаблон.
Видится три варианта на вскидку:
1 - вынести таки все данные в глобал стор и забить.
2 - в компоненте приконнектиться к store и заюзать subscribe(), отслеживать изменения и изменять локальный стейт если надо. Куча костылей.
3 - внутри редюсера тригерить нативный эвент на window например, а в нужных компонентах addEventListenter и ловить событие. Но кажется не совсем реакт подход.
если что-то в компонентах формы таки зависит от глобального стора(иначе твой вопрос странный немного), то может быть это можно вычислять из данных стора и засунуть в селекторы?


Igor
10.05.2017
07:18:39
Уже обсудили?
https://github.com/FormidableLabs/freactal
https://formidable.com/blog/2017/infinite-state-composition-with-freactal/?utm_source=forwebdev_tlgrm&utm_medium=announcement&utm_campaign=freactal--luchshee-iz-mirov-redux-i-mobx
Выглядит хорошо. И бойлерплейта минимум


Vladimir
10.05.2017
07:21:36
кстати про стейт. Какой рассово верный способ в компонентах отлавливать вызов какого-то редюсера? Например есть ряд компонентов, в них есть какой-то локальый стейт, который только для этого компонента, в других местах эти данные не нужны, они скорее больше декоративные, поэтому по хорошему выносить их в глобал стор особо смысла нет. Но при этом надо локальный стейт изменять в какой-то ситуации. Например по выбору формы, если форма очень сложная. Или получили что-то из бекенда, надо обновить вьюшки. Напрашивается обсервер шаблон.
Видится три варианта на вскидку:
1 - вынести таки все данные в глобал стор и забить.
2 - в компоненте приконнектиться к store и заюзать subscribe(), отслеживать изменения и изменять локальный стейт если надо. Куча костылей.
3 - внутри редюсера тригерить нативный эвент на window например, а в нужных компонентах addEventListenter и ловить событие. Но кажется не совсем реакт подход.
Задиспатчился какой-то экшн, каком-то из редьюсеров поставили флажок в стейте, в компонент передаем этот флажок, в componentWillReceiveProps обновляем то что надо


Alexandre
10.05.2017
07:22:18
вариант

Gregory
10.05.2017
07:47:14

Google

pepsi ¯\_(ツ)_/¯
10.05.2017
07:48:20
Вменяемые фреймворки вот только сейчас стали появляться.

Igor
10.05.2017
07:49:43
Да наверно, redux мне со своими action, reducer и т.п. во многих случаях избыточен
Иногда проще обходиться setState + props

Gregory
10.05.2017
07:50:09
И не хочешь юзать для прода

Ostap
10.05.2017
07:50:25
И я демку пильнул

Gregory
10.05.2017
07:50:43

Igor
10.05.2017
07:50:49
Но когда setState вверх прокидываешь из пятого компонента
Иногда проще что-то простое использовать для читабельности

Gregory
10.05.2017
07:51:19
Короче, там если огромные массивы данных он умирает > 5-10к значений

Igor
10.05.2017
07:51:34
Вот этот вариант мне кажется нормальный, надо будет потестировать на следующем проекте

Gregory
10.05.2017
07:51:55

Igor
10.05.2017
07:51:59
Да

Gregory
10.05.2017
07:52:10
Да выглядит хорошо для хактонов, и простых дашбордов

Igor
10.05.2017
07:53:16
Вот-вот. Что-то простое запилить без заботы о прокидке стейта

code4aman
10.05.2017
08:49:18
кто юзает eslint с jsx-a11y, с обновой такую проблему не ловили?

Google

code4aman
10.05.2017
08:49:48
при чем это вообще не jsx и не react файл))
почти на все импорты ругается... т.е. на самый первый во всех файлах
похоже поломали чета в eslint-plugin-jsx-a11y@5.0.1
да
> The airbnb config is not yet compatible with v5 - it requires v4

Дмитрий
10.05.2017
08:54:44
Весело
Полезная инфа

Defiancefew
10.05.2017
08:55:59

code4aman
10.05.2017
08:56:26
что за?

Defiancefew
10.05.2017
08:59:31
(
export PKG=eslint-config-airbnb;
npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG@latest"
)
в доках airbnb конфига. я как то бампнул пакеты, а у меня еслинт сломался и тоже грешил на eslint-plugin-jsx-a11y
тоже из-за несовместимости

Gleb
10.05.2017
09:06:06
Привет, нужно изменить render у компонента из стороннеего пекеджа, всплывашку проще говоря кастомизировать, при том используя все методы класса, меняя только само представление, HOC применить здесь не выйдет , т.к либа стороняя, верно ли понимаю что единственный способ решения это наследование и перегрузка render?

Сергей
10.05.2017
09:06:49

Gleb
10.05.2017
09:07:46
ну уж не использование ООП ради не использования получается =)

Konstantin
10.05.2017
09:08:29
Друзья, подскажите, не спал уже 72 часа, мозг тупо отказывается соображать. Как следить за размером контейнера (div). Тоесть, я изменяю окно бразуера, и размер обычного div`a меняется. Мне надо его размер при измении. Че-т с CompDidUpdate, CompShouldUpdate не получается. Впервіе я его получаю и в CompDidMount пишу в локальный стейт. А дальше он не изменяется.

Dmitry ?
10.05.2017
09:10:59

Nikolay
10.05.2017
09:11:11
Я бы сделал как-то так window.addEventListener('resize', this._handleWindowResize)

Konstantin
10.05.2017
09:12:01
а как-то избавится об глобальных штук, типа виндоу и документ можно?
не жалую я их

Dmitry ?
10.05.2017
09:12:18

Evg
10.05.2017
09:13:34
не жалую я их
это почему? изменение размера окна как бы глобальное событие

Google

Konstantin
10.05.2017
09:14:41
это почему? изменение размера окна как бы глобальное событие
как-бы да, но я как бы хочу следить именно за опеределённым контейнером, который может быть, а может не быть, и мне что-то менять при глобальном изменении смысла нет. Как-бы все эти лиснеры и исполняемые функции не дешевые операции по факту

Nikolay
10.05.2017
09:15:18
а у тебя другого выхода нет. подписывайся на ивент в компоненте, отписывайся когда componentWillUnmount

Konstantin
10.05.2017
09:16:43

Evg
10.05.2017
09:16:50
ну есть еще один вариант - использовать media queries в css, установаить условие появления/скрытия какого-то элемента по id

Admin
ERROR: S client not available

Evg
10.05.2017
09:17:08
не знаю насколько к твоей задаче применимо

Nikolay
10.05.2017
09:17:17
но под каптом тот же window)

Konstantin
10.05.2017
09:17:25

Evg
10.05.2017
09:18:01

Konstantin
10.05.2017
09:18:28

Nikolay
10.05.2017
09:18:53
нужно скрывать какой-то блок при изменении окна браузера?

Konstantin
10.05.2017
09:21:24
не, в блоке график, который не очень ресайзится. и мне надо перемещать сам блок красиво
Всем спасибо. Прифегачил эвентлистенер на ресайз. Завтра отрефакторю :)

Алексей
10.05.2017
09:45:45

Konstantin
10.05.2017
09:51:51
И под занавес этой темы, я только что выхил за кофейком, а на улице шел снег. 10 мая. снег.пиздец.

Сергей
10.05.2017
09:53:47

Konstantin
10.05.2017
09:54:38

Сергей
10.05.2017
09:55:08
https://www.instagram.com/p/BT5yqZWFqfU/

Konstantin
10.05.2017
09:55:32
это СПб?

Google

Сергей
10.05.2017
09:55:57
ага

Konstantin
10.05.2017
09:56:37
я на 1236 км южнее, но у нас таже фигня(((

Сергей
10.05.2017
09:57:25

Konstantin
10.05.2017
09:57:33
Киев

Сергей
10.05.2017
09:59:37
фигасе
там тоже

Gleb
10.05.2017
10:58:32
Jest ругается на импорты css внутри тестируемого компонента, кто встречался? как лечить?

Сергей
10.05.2017
11:03:16
https://facebook.github.io/jest/docs/webpack.html#mocking-css-modules

Gleb
10.05.2017
11:06:24
Т.е все импорты с цссами сразу заработают после конфига?
Спасибо!)

code4aman
10.05.2017
11:08:47
есть знатоки yup? как сделать такую валидацию:
есть схема { newPassword, confirmPassword, ...rest }
если есть значение в newPassword или confirmPassword то их значения должны совпадать

Gleb
10.05.2017
11:09:08
Сергей А что предполагается у меня должно быть в fileMock.js?

code4aman
10.05.2017
11:09:41
У меня там module.exports = {}

Gleb
10.05.2017
11:10:56
спасибо

Сергей
10.05.2017
11:17:34
ох ты ж