
Oleg
22.02.2017
06:14:34
а реакт дружит с material-ui?

Kir
22.02.2017
06:15:21
Ну хотя бы по тому, что в оф доках реакта в key установливается item.id
@Dandandandan спроектируем ситуацию, есть писок элементов который ты выводишь в map, и в качестве key используешь index. Далее ты берешь и удаляешь элемент из серидины списка, реакт просто запутается какой элемент был удален
key помогает реакту определить какой из элементов был удален изменен добавлен, в случае с index список просто сместится

Google

Kir
22.02.2017
06:23:30
@Orion55 реакт со всеми дружит, если его подружить )))
Alex в виду того, что очень редко возникают ситуации когда нужен стоковый селект, как правило нужен поиск, type head, кастомное оформление и.т.д. Тот копонент, что я тебе скинул позволяет это сделать легко и быстро )

Alex
22.02.2017
06:25:48
@GruFFix понял, спасибо

Danil
22.02.2017
06:25:51
Thanks

? Алёна
22.02.2017
06:28:52

Kir
22.02.2017
06:38:43
Оставим холивары )

Amandos
22.02.2017
06:48:30
Всем привет. Подскажите готовое решения для react - та https://snag.gy/JHtk2x.jpg

localvoid
22.02.2017
06:48:45

Kir
22.02.2017
06:49:30
то это аксиома, index использовать не круто ) Антипатерн

localvoid
22.02.2017
06:50:20
ничего плохого в использовании индекса нет, если понимаешь как всё работает

Kir
22.02.2017
06:50:41
пусть будет так )
В документации реакта написано - "Мы не рекомендуем"

Oleg
22.02.2017
06:51:39
а если рандомом формировать key?

Google

localvoid
22.02.2017
06:52:07

Oleg
22.02.2017
06:52:48
нет, в componentDidMount()

localvoid
22.02.2017
06:54:00
а какой юз кэйс? если статичный список, то проще индекс пихать, ну или инлайнить список чтоб реакт не кричал о том что нужно вставить ключи

Kir
22.02.2017
06:56:27
глупый спор, у тебя есть item.id и есть index, проблема религии устанавивать key={item.id} или как ? в документации четко сказанно есть id устанавливайте id

localvoid
22.02.2017
06:57:28
может ещё расскажешь как работает реконсайлер ? :)

Kir
22.02.2017
06:58:17
Может не будем устраивать холивары на очевидные ранее обдуманые и описаные в документации темы )))
Я же не мозгом с тобой мериюсь ?

localvoid
22.02.2017
07:00:00
ну так в документации как раз и расписано как всё работает в случае если используются позиции элемента для индексации
хотя судя по тому что даже в некоторых форках реакта этого не понимают, то может быть да, не стоит думать головой и просто всегда использовать какой-то уникальный ключ :)

Stas
22.02.2017
07:19:16

Denis
22.02.2017
07:23:24

Sergey
22.02.2017
07:24:24
ReactClassInterface: You are attempting to define constructor on your component more than once. This conflict may be due to a mixin.
братцы
почему ругается
http://joxi.ru/Dr8Ood7u8j17A6

Danil
22.02.2017
07:25:19
А подскажите Component will unmount сам удаляет компонент или ждет когда кто-то его удалит

Stas
22.02.2017
07:26:43
Метод вызывается когда компонент удаляется из DOM

Danil
22.02.2017
07:27:23
Ну в смысле, мы его либо сами удалим, либо вкладку в браузере закроем, как его еще вызвать можно?
Меня вчера на собеседовании спросили что есть
componentWillUnmount {
window.removeEventListener
}
Вопрос был такой, почему обработчик не удалится

Google

Danil
22.02.2017
07:29:58
Я сказал что cWU не вызвался, мне сказали что он обязательно будет вызван мол это условие задачи

Andrey
22.02.2017
07:31:11
мало вводных

Kir
22.02.2017
07:32:06
переход на другую страницу вызовет

Stas
22.02.2017
07:32:28
window.removeEventListener - какой обработчик он удаляет?

Danil
22.02.2017
07:33:01

Stas
22.02.2017
07:33:35
а контекст передается туда, например, через bind(this) ?

Danil
22.02.2017
07:34:39
Window.removeEventListener('resize', onScrollHandler.bind(this))

Denis
22.02.2017
07:34:40
+1 админ :) Добро пожаловать

Danil
22.02.2017
07:34:52
Вот так полностью

Сергей
22.02.2017
07:35:38

localvoid
22.02.2017
07:36:17

Andrey
22.02.2017
07:36:35
onScrollHandler.bind(this) ... bind создает обетрку над onScrollHandler, по этому отписаться уже не получиться, если отдельно не сохранить bindOnScrollHandler = onScrollHandler.bind(this), а потом отписываться по bindOnScrollHandler

Mikhail
22.02.2017
07:36:42
любопытная новость, новая бета личного кабинета ВТБ сделана на react/redux/webpack, вот только что заметил, видать на этой неделе произошло
в сбера кстати тоже лич кабинет для юриков тоже на этом же стэке делается
оба в бете пока

Danil
22.02.2017
07:37:16
Thanks

Сергей
22.02.2017
07:40:48
бинд просто копирует функцию и привязывает в ней контекст

Andrey
22.02.2017
07:41:32

Google

Andrey
22.02.2017
07:42:20
The bind() method
creates a new function
that, when called, has its this keyword set to the provided value, with a given sequence of arguments preceding any provided when the new function is called.
Где я ошибся?

Сергей
22.02.2017
07:43:35

Stas
22.02.2017
07:43:44
constructor() {
this.onScrollHandler = this.onScrollHandler.bind(this);
}
componentWillUnmount() {
window.removeEventListener('resize', onScrollHandler)
}
так должно отвязаться

Алексей
22.02.2017
07:44:22

Сергей
22.02.2017
07:44:38

Andrey
22.02.2017
07:44:45
ага, мне тоже интересно, может я не правильно понимаю термин обертка

Admin
ERROR: S client not available

Danil
22.02.2017
07:44:50
А почему обертка запрещает отвязаться? Мне вот это больше не понятно

Сергей
22.02.2017
07:45:15

Алексей
22.02.2017
07:45:21

Andrey
22.02.2017
07:45:42

Алексей
22.02.2017
07:46:10
я об этом
мы если честно не можем знать создает он обертку или нет ;)

Сергей
22.02.2017
07:46:25
поэтому намного лучше если есть возможность:
const dispose = subscribeToEvents(callback)
dispose() // unsubscribed

Danil
22.02.2017
07:47:10
Thanks

Алексей
22.02.2017
07:48:21

Сергей
22.02.2017
07:48:50

Алексей
22.02.2017
07:49:05
не будем забывать что bind позволяет частичное применение сделать, а просто копированием функции этого не добится

Сергей
22.02.2017
07:50:20
зависит от реализации как раз таки...
там список аргументов отдельным классом
Может функция копируется, а список аргументов как раз просто забивается фикс и всё

Google

Danil
22.02.2017
07:51:32

Сергей
22.02.2017
07:51:45

Алексей
22.02.2017
07:51:52

Сергей
22.02.2017
07:52:12

Danil
22.02.2017
07:52:44

Сергей
22.02.2017
07:52:46

Danil
22.02.2017
07:52:54
Пойду учить джс

Алексей
22.02.2017
07:53:26

Сергей
22.02.2017
07:54:02

Алексей
22.02.2017
07:54:24
в общем по сути для нас главное что возвращается новая, все остальное детали реализации, которые нас не должны волновать ?

Сергей
22.02.2017
07:54:32
@Dandandandan вот твоё решение

Алексей
22.02.2017
07:55:44

Danil
22.02.2017
07:56:14

Сергей
22.02.2017
07:56:47
так ты собеседку проходил...