@react_js

Страница 1324 из 5115
Max
22.05.2017
10:19:03
компонент должен работать только с тем что в пропсах приходит

shadowjack
22.05.2017
10:19:42
Те контейнер это адаптер?

Max
22.05.2017
10:19:59
контроллер в терминах MVC

ИМХО

Google
Сергей
22.05.2017
10:20:35
Те контейнер это адаптер?
нет он сродни контроллеру, имеет хендлеры, имеет данные прокидывает эти данные и хендлеры в представление, которое умеет просто дергать пропсы

Алексей
22.05.2017
10:20:48
я в mapStateToProps готовлю данные

Max
22.05.2017
10:21:23
я в mapStateToProps готовлю данные
изменение как происходит?

и диспатч откуда идет?

Сергей
22.05.2017
10:21:37


Алексей
22.05.2017
10:21:55
Max
22.05.2017
10:22:05
экшны у тебя кто бросает?

компонент?

Алексей
22.05.2017
10:22:18
ага

Max
22.05.2017
10:22:25
нууу

хз

не нравится

Сергей
22.05.2017
10:22:46
компонент?
у тебя обычный компонент знает о существовании ридакса?

Google
shadowjack
22.05.2017
10:23:06
А кто ещё может их бросать?

Max
22.05.2017
10:23:12
Сергей
22.05.2017
10:23:20
shadowjack
22.05.2017
10:23:22
А как он узнает?

Сергей
22.05.2017
10:23:32
А как он узнает?
Кидает пропсы-хендлеры в представление. Представление уже их дергает. Представлению по барабану что за хендлеры и как они работают.

Max
22.05.2017
10:23:39
через пропсы

Алексей
22.05.2017
10:23:59
лишний слой какой то)

Сергей
22.05.2017
10:24:14
Это как раз и есть отделение представление от данных)

Всё остальное пыль в глаза

Алексей
22.05.2017
10:24:30
так тут не про данные, а про экшены)

Сергей
22.05.2017
10:24:55
Я не могу реиспользовать в другом месте компонент, который умеет кидать конкретные экшены. Композицию тоже невозможно использовать в этом случае.

Алексей
22.05.2017
10:25:29
не, он же не знает, какой это экшн, просто колбэк обычный

Сергей
22.05.2017
10:25:35
эм

Алексей
22.05.2017
10:25:43
ты же коннектишь их

Сергей
22.05.2017
10:26:15
Если ты ему через пропсы кидешь коллбек, который он просто дергает, то ок. Это именно то, о чем мы тут с @syabro говорим. Просто лично мне нехватает mapStateToProps, я юзаю recompose и его многие хоки. Иногда это вырастает в много строк.

Алексей
22.05.2017
10:27:32
просто нет у меня специальных компонент для этого, все в коннекте готовится (исключение это fetch данных при маунте, но это скорее костыль реакт роутера)

Алексей
22.05.2017
10:29:26
тоже неплохо) правда меня не парит иногда extends Component сделать - обертку))

Yeti
22.05.2017
10:29:33
Ребят никто не писал плагин для eslint со своими правилами ? Я их задал в секции rules но eslint их не находит. Есть у кого может пример несложного плагина чтобы как пример использовать?

Max
22.05.2017
10:29:37
у меня тоже нет "специальных". Я юзаю recompose и ХОКи)) Очень удобно recompose/lifecycle
a) что такое lifecycle? b) где хранится enhance c) как выглядит экспорт енхенсед компонентов

Google
Сергей
22.05.2017
10:29:45
Алексей
22.05.2017
10:30:06
Сергей
22.05.2017
10:31:13
a) что такое lifecycle? b) где хранится enhance c) как выглядит экспорт енхенсед компонентов
чаще всего enhance, если он маленький хранится в том же файле что и компонент (ибо у меня AtomicDesign, там pages это конечный роут и не переиспользуется) если enhance нужен для реиспользуемого компонента или же он просто большой, то выношу в директорию enhancers lifecycle это функция из библиотеки recompose, по сути позволяет навесить lifecycle методы реакта componentWillMount и т.д. не описывая класс

Алексей
22.05.2017
10:31:44
что за enhance?

Сергей
22.05.2017
10:32:11
что за enhance?
Набор HOC'ов объединенных в одну функцию с помощью compose

Вот так

Алексей
22.05.2017
10:33:05
для этого уже спец название есть ?

Сергей
22.05.2017
10:33:08


Max
22.05.2017
10:34:06
а классом?

enhance

точнее НА класс

Сергей
22.05.2017
10:34:29
а классом?
С классом тоже вполне себе прокатит. Просто я предпочитаю функции

Сергей
22.05.2017
10:34:37
https://github.com/acdlite/recompose

Dreamerinnoise
22.05.2017
10:34:56
на класс декоратор бы подошёл т ут

Сергей
22.05.2017
10:35:51
на класс декоратор бы подошёл т ут
так декораторы для классов по сути и есть эти HOC'и

Max
22.05.2017
10:36:54
ты сторибуки юзаешь?

Сергей
22.05.2017
10:37:22
ты сторибуки юзаешь?
Пробовал юзать. Нехватило функционала

Max
22.05.2017
10:37:25
я с контейнерами так же могу сделать в принципе через HOC

или даже без

через children

Google
Max
22.05.2017
10:37:38
хотя как HOC

или проперти

но у тебя просто нейминг не используется для вью именно

т.е. ты не можешь без енхенса экспортнуть компонент

Filip
22.05.2017
10:38:31
Подумываю юзать

Max
22.05.2017
10:38:45
Например вложенность два уровня это днище

забитый вебпак1

Сергей
22.05.2017
10:38:58
т.е. ты не можешь без енхенса экспортнуть компонент
Вообще могу, просто нужно будет required пропсы передать. Просто в pages это не нужно

Admin
ERROR: S client not available

Filip
22.05.2017
10:39:22
Эти оба не фиксятся хотя бы костылями?

Max
22.05.2017
10:39:25
нет

я уже подумываю свое навелосипедить

Filip
22.05.2017
10:39:39
только пару недель как вебпэк обновил

Сергей
22.05.2017
10:39:50
это как?
ну, в компонент-представление, сваливается всё через пропсы сверху, enhance как раз делает сверху контейнер, который пропсами внутрь прокидывает хендлеры и данные

я уже подумываю свое навелосипедить
Я вот для проекта так и сделал (библиотека компонентов)

Max
22.05.2017
10:40:28
ну вот смотри есть компонент <CommentList comments=… onDelete=… onAdd=... />

у тебя енхенсер передает эти вещи

Сергей
22.05.2017
10:41:37
Какого функционала?
Очень нужен был Playground, с живым редактированием примеров. Также хотелось иметь на одной странице компонента, сразу несколько плейграундов. К тому же указываю у себя какие компонент реюзает компоненты, там при билде все считается и имеются перекрестные ссылки внутри страниц компонентов, что весьма удобно

Google
Max
22.05.2017
10:41:59
а мне надо заюзать их в сторибуке

проперти эти

но енхенсер же свои прокинул

Сергей
22.05.2017
10:42:42
но енхенсер же свои прокинул
экспортишь без вызова enhance(), и прокидываешь)

Max
22.05.2017
10:42:49
вот

получается

export CommentList export const WTF = enhance(…)(CommentList)

приходим к моей проблеме с неймингом WTF

:)

Сергей
22.05.2017
10:43:50
У тебя же есть components, проведи аналогию))

Для себя я нашел отличное решение, работает на ура. В случае стори буков, хз. Тестировать такое очень легко, реиспользовать тоже. у меня так: export const SomeSpecificPage = () => () export default enhance(SomeSpecificPage) Хотя мне кажется лучше было бы SomeSpecific и SomeSpecificPage

Max
22.05.2017
10:46:47
вот нахуй

я говна наелся

Сергей
22.05.2017
10:47:02
а суть не меняется)

Max
22.05.2017
10:47:11
когда дефолтный экспорт юзает то же имя

что и именованный )

Сергей
22.05.2017
10:47:21
Эти оба не фиксятся хотя бы костылями?
Вот кстати, почему я напилил свой велосипед



Max
22.05.2017
10:47:46
серега, давай в опенсорц

Сергей
22.05.2017
10:48:35
серега, давай в опенсорц
Надо адаптировать

Max
22.05.2017
10:50:59
короче наверное назову export CommentListComponent и export const CommentList = enhance()(CommentListComponent)

Страница 1324 из 5115