
Andrey
15.02.2018
08:29:29
Рекорды можно выкинуть и норм.

Vitaly
15.02.2018
08:31:17
о, речь про immutable наконец-то зашла! ребзя, как "правильно" его экстендить?)

Andrey
15.02.2018
08:31:44

Дмитрий
15.02.2018
08:31:48
А какой кейс? ? Мне пока не требовалось, ток смутно помню что возможность есть

Google

Vitaly
15.02.2018
08:34:22
В общем - у менять есть Mapы, мне нужно в них домешать методы типа "onClick" что бы упростить api, я вынес себе мозг и единственное решение которое нашел - это делать record
вот пример https://github.com/findify/findify-js/blob/develop/packages/react-connect/src/immutable/createRecord.ts
проблемы 2 - оверхед на создание нового инстанса при первичном проходе цыклом, toJS во вложенных рекордах не цепляется

Дмитрий
15.02.2018
08:37:37
Ой чет жёсткое)

Vitaly
15.02.2018
08:40:57
Ой чет жёсткое)
вот так вот :( зато меньше ререндеров, мемоизация и другие ништяки которые предоставляет immutable)

Nikolay
15.02.2018
08:44:08
Тут это... пишут, что хоки кал, юзайте, мол, рендер-пропсы. Чё скажете?

Andrey
15.02.2018
08:45:44

Тимофей
15.02.2018
08:47:40

Vitaly
15.02.2018
08:56:24
Кстати, еще момент про immutable - он весит на 5кб больше чем lodash на минималках :|

Дмитрий
15.02.2018
08:57:44
Моя минималка лодаша в проекте: 0Кб)

Nikolay
15.02.2018
08:58:29
Парни, нужна ваша помошь, есть два стула...
Точнее есть 500+ дерево комментариев с вложенностью друг в друга, нужно показывать под комментарием форму ответа если чувак нажал reply у этого комментария.
Сейчас комментарии рендерятся через renderComment туда передается обернутый в connect комментарий. Комментарию из стейта приходит targetFormId, он сравнивает его со своим id и показывает форму.
Вроде все хорошо, но не совсем.
Когда мы тыкаем на reply у комментария, а потом следом на reply у другого, предыдущая форма скрывается.
Такое поведение возможно только если перерендерить все дерево коментариев, что и делают обернутые в connect комментарии.
Есть ли другой нормальный способ показывать форму реплая под комментарием и сразу скрывать под другим?

Vitaly
15.02.2018
08:58:43

Дмитрий
15.02.2018
09:00:18
а сколько у тебя рамды?)
После того как я решил, что объекты-мапы мне не бро, использование рамды резко начало сокращаться

Google

Andrey
15.02.2018
09:00:52

Vitaly
15.02.2018
09:01:13

Kos
15.02.2018
09:01:52

Nikolay
15.02.2018
09:02:03

Сергей
15.02.2018
09:02:09
адок

Дмитрий
15.02.2018
09:03:10
почему?
Почему не бро или почему из-за этого сокращается?)

Nikolay
15.02.2018
09:03:20

Kos
15.02.2018
09:03:30

Andrey
15.02.2018
09:03:34

Max
15.02.2018
09:03:54
все ок

Andrey
15.02.2018
09:04:02
А показ формы снаружи контролируй отдельно.
pure
И как поможет, если у всех один и тот же пропс поменялся?

Дмитрий
15.02.2018
09:05:09
ну сокращение понятно, почему не бро?
Потому что объекты делают всё чтобы их не пытались юзать как мапы. И по прототипам ползают, и тип меняют, и сортировку свою собственную ставят и тому подобное

Max
15.02.2018
09:05:18
в mapStateToProps передаешь {
renderForm: state.renderID==formId
}
и pure начинает нормально работать

Дмитрий
15.02.2018
09:05:29
Их, блин, просто неудобно юзать, на самом деле
Объекты-мапы — не бро

Andrey
15.02.2018
09:06:02

Google

Andrey
15.02.2018
09:06:09
Если подходит, то лучше так, да.

Nikolay
15.02.2018
09:06:51

Andrey
15.02.2018
09:07:16
Ты через connect передаёшь булев флаг.

Nikolay
15.02.2018
09:07:58
ну сейчас да, у меня через булев сделано, но сука оно все равно все 500+ ререндеров делает

Max
15.02.2018
09:08:03
в доке редакса реально хуево объясняют зачем нужен mapStateToProps
поэтому возникают такие вопросы

Andrey
15.02.2018
09:08:14
А точнее просто mapStateToProps

Nikolay
15.02.2018
09:08:56
const ConnectedCommentsForm = connect((state, props) => {
const replyFormId = replyFormIdSelector(state)
return {
key: props.parentId,
visible: props.parentId === replyFormId || props.parentId === 0,
}
})(CommentsForm)

Max
15.02.2018
09:10:08
ну вот
а теперь добавь sCU в CommentsForm

Andrey
15.02.2018
09:10:47

Сергей
15.02.2018
09:11:27

Max
15.02.2018
09:11:39
сова походу осовился совсем

Andrey
15.02.2018
09:11:46
Сова, что с тобой последнюю неделю?

Max
15.02.2018
09:11:47
одними матами и междометиями общается

Andrey
15.02.2018
09:11:58
Чувство, что тебе кирпич в голову подарили.

Дмитрий
15.02.2018
09:12:29
?

Google

Сергей
15.02.2018
09:12:39
& > * + *

Vadim
15.02.2018
09:12:42

Дмитрий
15.02.2018
09:12:48
Дружелюбное Комьюнити ™️

Max
15.02.2018
09:12:52
сова на барбитуратах просто

Сергей
15.02.2018
09:13:01
лоботомированный сова

Max
15.02.2018
09:13:06
ну кстати да
мозг пропал
удалили

Сергей
15.02.2018
09:13:19
⌘ + backspace

Andrey
15.02.2018
09:13:25

Mike
15.02.2018
09:13:53
⌘ + backspace
всегда было интересно, как вы на маках без делита живете?

Andrey
15.02.2018
09:14:05

Max
15.02.2018
09:14:08
фн+бекспейс

Виталий
15.02.2018
09:14:10

Mike
15.02.2018
09:14:26
фн+бекспейс
отвратительно же, в каком месте это удобный UX?

Max
15.02.2018
09:14:35
норм, привык

Andrey
15.02.2018
09:14:37

Сергей
15.02.2018
09:14:47

Andrey
15.02.2018
09:14:50

Mike
15.02.2018
09:14:52
хуже этого только 14-дюймовые ноуты с fn + <= вместо home

Google

Сергей
15.02.2018
09:15:01

Max
15.02.2018
09:15:05

Andrey
15.02.2018
09:15:31

Mike
15.02.2018
09:15:37

Andrey
15.02.2018
09:15:45

Max
15.02.2018
09:15:53
так
свалите в @macos_ru
а, ты про то что коннект запихать в форму реплая?

Andrey
15.02.2018
09:16:40
не понял
Как я понял, он форму ответа в компоненте комментария рендерит, хотя можно разбить на 2 компонента и не мучать мозг.

Max
15.02.2018
09:16:43
погоди
он рендерит CommentsForm
есличо )

Andrey
15.02.2018
09:17:16
Ну хрен знает что он называет так)