
Aleh
27.08.2017
09:58:18
Ну правильно

Nikita
27.08.2017
10:00:48

Eugene
27.08.2017
10:01:17

Nikita
27.08.2017
11:00:30
Гайс,как получить контекст элемента при клике на него ?

Google

Andrey
27.08.2017
11:01:20
Пробрасывай onClick и через него передавай
Или что ты называешь контекстом?

Nikita
27.08.2017
11:03:15
Ну мне нужен контекст именно того элемента по которому я кликаю,чтобы добавить к нему класс
В чистом js это вообще не проблема ,тут что-то не понимаю

Andrey
27.08.2017
11:03:43
Что такое контекст в твоём понимании?

Nikita
27.08.2017
11:04:03
this элемента

Andrey
27.08.2017
11:04:41
Заведи флаг в стейте и переключай его при клике

Nikita
27.08.2017
11:06:05
У меня повторяющиеся элементы ,к ним всем будут применен этот класс

Andrey
27.08.2017
11:06:32
Не будет

Nikita
27.08.2017
11:08:13
Они через map итерируются ,и поэтому если я добавлю класс к одному то все его получат ,можно конечно вынести элемент в компонент ,но думал есть проще решение

Andrey
27.08.2017
11:08:55
Заведи множетство флагов с тейте и переключай при клике.
Блин, это так сложно?
Или храни в стете только переключенные элементы

Google

Nikita
27.08.2017
11:09:47
Спасибо ,я понял

Айнур
27.08.2017
11:09:51

Nikita
27.08.2017
11:09:56
Да

Maksim
27.08.2017
13:35:12
Блин, да кто ж так делает, ещё и совет с флагами в стейте
Делаешь onClick={this.handler.bind(this, someButtonContextOrID)}
В хендлере получаешь айдишку что нажали

andretshurotshka?❄️кде
27.08.2017
13:38:01
и получаешь ререндер каждый раз из-за бинда)

Denis
27.08.2017
13:38:46
Если родитель сам получит ререндер

Maksim
27.08.2017
13:38:47
Схера ли?

Denis
27.08.2017
13:39:43
Да и scu никто не отменял

Сергей
27.08.2017
13:41:28
Схера ли?
потому что .bind создает новую функцию каждый раз

Maksim
27.08.2017
13:41:45
И что?
Ни стейт ни пропсы он не меняет

Сергей
27.08.2017
13:42:22
пропсы меняет
лол
у тебя будет props.onClick !== nextProps.onClick

Maksim
27.08.2017
13:43:15
Дочерних, пусть меняет

Никита
27.08.2017
13:44:33

Maksim
27.08.2017
13:45:46

Никита
27.08.2017
13:45:55
с чего?

Google

Max
27.08.2017
13:46:18
Потому что по спецификации

Maksim
27.08.2017
13:46:29
Ну а как?

Никита
27.08.2017
13:46:47
тогда в конструкторе this.handler = this.handler.bind(this)

Denis
27.08.2017
13:47:26
Кек

Maksim
27.08.2017
13:47:30
Тогда без контекста

Denis
27.08.2017
13:48:21
Можно ещё компоненты научить прокидывать свои пропсы в коллбек типа айди
Но нахуя
updateForKeys из recompose и вперёд
Никаких ререндеров

Сергей
27.08.2017
13:49:21

Никита
27.08.2017
13:51:53
https://medium.freecodecamp.org/react-binding-patterns-5-approaches-for-handling-this-92c651b5af56

Михаил
27.08.2017
13:53:13
Эх, щяс бы в 2018 году бинд в рендере обсуждать?

Сергей
27.08.2017
13:53:33
ты год перепутал
2018 был в том году

Салават _Awasaky_
27.08.2017
13:54:48
"Вас пригласили завтра, а вы все время приходите сегодня"

Сергей
27.08.2017
13:54:48
https://twitter.com/housecor
Я не знал, что Станнис на реакте пишет

andretshurotshka?❄️кде
27.08.2017
13:59:17
сложно

Сергей
27.08.2017
14:03:52
@ZeroBias Сергей
https://github.com/Mitranim/posterus

Sergey
27.08.2017
14:06:46
?

Google

andretshurotshka?❄️кде
27.08.2017
14:12:20

Andrey
27.08.2017
14:16:42

Алексей
27.08.2017
14:22:04
По поводу лицезии (может кто не видел) https://code.facebook.com/posts/112130496157735/explaining-react-s-license/

Maksim
27.08.2017
14:42:33
Чем плохи флаги в стейте?
Есть код с флагами в стейте? По хорошему надо выносить в компонент и оттуда колбечить, но человек так не захотел

andreyelek
27.08.2017
14:47:15
https://code.facebook.com/posts/112130496157735/explaining-react-s-license/
Какие последствия?

illiatshurotshka❄️
27.08.2017
14:47:48
никаких

Admin
ERROR: S client not available

andreyelek
27.08.2017
14:47:55
рили?

illiatshurotshka❄️
27.08.2017
14:47:57
да
уже очень много раз были разговоры про это

andreyelek
27.08.2017
14:48:10
ну лан

Alex
27.08.2017
15:16:00
Всем привет.
Возможно кто натолкнет на мысль или кинет ресурс. буду очень признателен/
Вопрос такой:
В родительском компоненте есть функция. которая принимает параметр item
мы передаем эту функцию в дочерний компонент
<Child delete={this.DeleteItem.bind(this)}/>
В компоненте child я вызываю эту функцию допустим на клик
onClick={this.props.delete(item)} - если так написать то item not defined
Если убрать item то функция не передает item который должна принять функция в родительском комп
Задача - в дочернем компоненте вызвать функцию с родительского и передать ей параметр из дочернего

Andrey
27.08.2017
15:16:35
Декоратор создай.
Или DeleteItem пусть возвращает функцию, которая принимает item
Но лучше первое.

Alex
27.08.2017
15:18:18
Я еще думал может саму функцию написать в дочернем компоненте и возможно как то обновить стэйт в родительском
Функция сама вроде вызывается в дочернем и лог дает но параметр не передать (

Andrey
27.08.2017
15:21:48
Напиши декоратор
const a = item => DeleteItem(item)

Google

Nikita
27.08.2017
15:25:25

Andrey
27.08.2017
15:26:32
Но лучше мемоизировать функцию, чтобы её не пересоздавать каждый раз.

Nikita
27.08.2017
15:27:33
Это не внутри рендера (очевидно же)

Andrey
27.08.2017
15:28:14
А, ты метод класса хочешь сделать. Не прав был.

Alex
27.08.2017
15:30:14
Cannot read property 'props' of null
(((

Andrey
27.08.2017
15:31:29
Слушайте, а зачем в setState может понадобиться передать функцию?

Denis
27.08.2017
15:32:08
bind | arrow fn
^
на handleClick

Alex
27.08.2017
15:33:24
bind(this)
позволяет функции заработать но параметр от дочернего в итоге так и не передается (

Denis
27.08.2017
15:34:20
ведь ты ничего не передаешь
в handleClick