@react_js
React — русскоговорящее сообщество

Обсуждаем React.js и экосистему. См. также: @reactnative_ru, @apollo_ru, @protonnative_ru, @nodejs_ru, @js_ru, @uiux_ru Вакансии и поиск работы: @javascript_jobs Правила: http://bit.ly/our_etiquette Sponsored with ❤️ by www.axept.co

5822 members

Архив канала @react_js 18 мая 2016 г.

12:06:23 ДП
User 4627228
Для тех, кто начинает свой путь в мир React.js: https://github.com/petehunt/react-howto#learning-flux
github.com/petehunt/react-howto
Your guide to the (sometimes overwhelming!) React ecosystem. - petehunt/react-howto
08:36:56 ДП
User 25721027
Зачем в css-modules есть :local и :global? Ни разу не сталкивался с их необходимостью
08:38:32 ДП
User 185980313
глглобал нужен, что бы сделать глобальный css класс
08:39:40 ДП
User 25721027
Чтоб в разных модулях его юзать например? Или чтобы не обращаться к нему через style.globalClassname ?
08:50:30 ДП
User 233147
Чтобы стили сбросить например
08:52:46 ДП
User 117372400
если ты используешь стороннюю либу в которой нет возможности что-то изменить, а там уже используется class="alibaba", тогда все что тебе остается :global(.alibaba) { color: red; }
09:59:23 ДП
User 63637623
User 25721027
Зачем в css-modules есть :local и :global? Ни разу не сталкивался с их необходимостью
Полагаю, потому что началось с идеи того, чтобы создавать "local" классы явно. И уже потом решили "а давайте сделаем вообще все классы local по умолчанию! Тогда не надо будет local писать". В качестве opt-out есть :global.
10:27:45 ДП
User 14141097
Кто может мне объяснить set(x) ? вот здесь - http://cl.ly/1d3o2U1v0z2U
10:29:15 ДП
User 14141097
рановато задал вопрос))
10:29:21 ДП
User 14141097
сорян, все стало понятно))
10:29:38 ДП
User 143141567
Что за статья?
10:29:52 ДП
User 14141097
https://medium.com/@gaperton/managing-state-and-forms-with-react-part-1-12eacb647112#.gsnbkdvas
medium.com/@gaperton/managing-state-and-forms-with-react-part-1-12eacb647112
Simple form example
10:30:01 ДП
User 14141097
от Vlad Balin
10:30:04 ДП
10:30:13 ДП
User 14141097
про паттерн Value Link
10:32:22 ДП
User 199126836
А что за синтаксис
const TextInput(...) => ();
10:33:05 ДП
User 119754639
Stateless components
10:33:09 ДП
User 143141567
stateless component
10:33:50 ДП
User 143141567
https://facebook.github.io/react/docs/reusable-components.html#stateless-functions
reactjs.org/docs/components-and-props.html
A JavaScript library for building user interfaces
10:33:59 ДП
User 199126836
не, я про языковую конструкцию
10:34:18 ДП
User 143141567
arrow function
10:34:30 ДП
User 199126836
я пишу так const TextInput = (...) => ();
10:35:08 ДП
User 143141567
возможно дело в отображении компонента в react tools
10:35:18 ДП
10:35:48 ДП
User 143141567
не знаю, надо проверить. Видимо если функция не анонимная, то имя присваивается как имя компонента
10:36:02 ДП
User 143141567
а так ставиться StatelessComponent
10:42:45 ДП
User 1340580
User 199126836
а
Мне кажется он равно забыл поставить просто в примере своем.
10:49:17 ДП
User 187276728
а у всех (на маке) тоже такая проблема что dev middleware иногда не видит изменений когда глубокая вложенность файлов, например, > 4?
10:49:21 ДП
User 187276728
webpack + dev middleware
10:49:41 ДП
User 187276728
poll: false
10:49:49 ДП
User 187276728
это как-то чинится (кроме poll: true)?
все таки сделал тупо poll: true, + интервал побольше чтобы ноут не стек на пол
11:06:34 ДП
User 118628034
Folks, а есть тут у кого-нибудь большой проект, посередине которого например перешли на flow?
11:07:33 ДП
User 118628034
Интересно насколько это повлияло на стремные баги.
11:16:00 ДП
User 90246751
User 118628034
Folks, а есть тут у кого-нибудь большой проект, посередине которого например перешли на flow?
Ага, ну я правда переходил на flow не совсем в середине, а ближе к началу
11:16:03 ДП
User 39182759
я в какой-то момент врубил флоучек, а потом вырубил
11:16:21 ДП
User 39182759
довольно большой проект
11:16:28 ДП
User 90246751
В целом спасает от тупых багов и всяких опечаток, но писать становится чуть дольше
11:17:00 ДП
User 90246751
С переходом проблем нет - включил/выключил, он вобще очень опциональный
12:14:26 ПП
User 153807368
User 187276728
это как-то чинится (кроме poll: true)?
все таки сделал тупо poll: true, + интервал побольше чтобы ноут не стек на пол
Poll это ж жесть
А как и где ты интервал выставляешь?
12:19:45 ПП
User 187276728
poll: 100, aggregateTimeout: 300
12:21:16 ПП
User 187276728
watchOptions.poll:
true: use polling
number: use polling with specified interval
12:25:50 ПП
User 1340580
User 187276728
а у всех (на маке) тоже такая проблема что dev middleware иногда не видит изменений когда глубокая вложенность файлов, например, > 4?
Вроде нет такой проблемы.
12:26:31 ПП
User 187276728
ок, я чуть позже возьму чистый стартер какой-нибудь и попробую воспроизвести
12:28:17 ПП
User 1340580
User 187276728
ок, я чуть позже возьму чистый стартер какой-нибудь и попробую воспроизвести
Глянь вот этот: https://github.com/kriasoft/react-starter-kit/
github.com/kriasoft/react-starter-kit
React Starter Kit — isomorphic web app boilerplate (Node.js, Express, GraphQL, React.js, Babel, PostCSS, Webpack, Browsersync) - kriasoft/react-starter-kit
12:28:29 ПП
User 1340580
Точнее протестируй на нем :)
12:28:48 ПП
User 187276728
ок, да, я понял)
12:34:26 ПП
User 182495393
Самый лутчий стартер кит который я видел
12:36:34 ПП
User 40529464
User 182495393
Самый лутчий стартер кит который я видел
а он разве production ready? вроде стартует через babel-node или я что-то упускаю?
12:37:50 ПП
User 1340580
User 40529464
а он разве production ready? вроде стартует через babel-node или я что-то упускаю?
Нет, там все хорошо, билдится, запускаешь через node build/server
12:38:01 ПП
User 40529464
понял
12:38:43 ПП
User 40529464
он вроде серверную часть через вепбак тоже прогоняет или ошибаюсь?
12:39:11 ПП
User 90246751
Да, конечно
12:39:57 ПП
User 40529464
а в чем преимущества по-сравнению с просто прогоном сервеного кода через babel?
12:39:59 ПП
User 1340580
User 40529464
он вроде серверную часть через вепбак тоже прогоняет или ошибаюсь?
Да, он билдит два бандла, для сервера и клиента. Здесь есть создатель, @koistya.
12:40:20 ПП
User 1340580
User 40529464
а в чем преимущества по-сравнению с просто прогоном сервеного кода через babel?
Не понял вопроса.
12:40:31 ПП
User 143141567
Почему использование React сразу подразумевает, что сервер на node и все такое. Просто фиг поиспользуешь такой стартер, когда сервер на php написан. Или как то это можно решить?
12:40:48 ПП
User 40529464
не не, сервер на ноде, реакт рендерится на сервере
12:41:15 ПП
User 40529464
просто вместо того, чтобы делать один большой bundle для серверной части у меня код для сервера просто прогоняется через babel
12:41:38 ПП
User 40529464
то есть не получается одного server.js, а все как лежало в отдельных папочках, так и осталось
12:41:48 ПП
User 1340580
User 40529464
просто вместо того, чтобы делать один большой bundle для серверной части у меня код для сервера просто прогоняется через babel
На выходе ты получаешь также сбилженный серверный бандл, так?
12:41:58 ПП
User 40529464
только траспайлятся отдельные отсутствующие es6 фичи
12:42:12 ПП
User 1340580
User 40529464
то есть не получается одного server.js, а все как лежало в отдельных папочках, так и осталось
Значит ты на горячую через babel-node запускаешь?
12:42:27 ПП
User 40529464
нет, через обычную ноду
12:42:30 ПП
User 1340580
ну или babel-register в entry point, так?
12:42:34 ПП
User 40529464
babel-node не для продакшена
12:42:42 ПП
User 40529464
нет, и без babel-register
12:42:43 ПП
User 40529464
через https://www.npmjs.com/package/babel-preset-es2015-node4
npmjs.com/package/babel-preset-es2015-node4
Babel preset to make node@4 ES2015 compatible.
12:43:10 ПП
User 40529464
этот плагин ковертит некоторые фичи es6 в es5 и дальше все на обычной ноде запускается
12:43:26 ПП
User 40529464
с шестеркой еще меньше надо транспайлить
12:43:56 ПП
User 40529464
для клиента все как обычно - webpack all the things
12:43:57 ПП
User 90246751
User 143141567
Почему использование React сразу подразумевает, что сервер на node и все такое. Просто фиг поиспользуешь такой стартер, когда сервер на php написан. Или как то это можно решить?
Есть какое-то решение для серверного рендера реакта на php, вроде даже проскакивало здесь вчера. Но в целом такая идея выглядит как экзотика, по крайней мере для меня
12:44:34 ПП
User 40529464
User 90246751
Есть какое-то решение для серверного рендера реакта на php, вроде даже проскакивало здесь вчера. Но в целом такая идея выглядит как экзотика, по крайней мере для меня
и для php написали, и на Java Nashorn запускали.. но зачем?
12:45:07 ПП
User 40529464
только если текущий стек ну никак не позволят от них избавиться и добавить ноду
12:45:19 ПП
User 40529464
а рендерить на сервере очень хочется..
12:46:27 ПП
User 182495393
User 40529464
а он разве production ready? вроде стартует через babel-node или я что-то упускаю?
ready ready :) весь код компилиться на ES5, будем его использовать на новом проекте с 6 нодой и под современные браузеры, думаю вообще без бабеля обойдемся
12:47:51 ПП
User 40529464
я ничего не имею против компиляции в es5 :) мне интересен вариант, когда компилится в es5, но не собирается в единый server.js webpack'ом
12:52:12 ПП
User 182495393
User 40529464
я ничего не имею против компиляции в es5 :) мне интересен вариант, когда компилится в es5, но не собирается в единый server.js webpack'ом
вебпаком можно легко настроить что и куда компилиться, как уже сказали раньше в этом ките бидлиться два разных файла, один на сервер другой на клиент
12:52:55 ПП
User 40529464
"что и куда компилиться" - это что именно? я понимаю как оно компилится и как получаются два bundle
12:53:17 ПП
User 117372400
если не собирать вэбпаком, то нужно думать что делать с <img src={require('./img.png')} />, import styles from './styles.scss' и тп
12:54:05 ПП
User 40529464
ага, тут я схитрил и использую https://github.com/istarkov/babel-plugin-webpack-loaders
github.com/istarkov/babel-plugin-webpack-loaders
babel-plugin-webpack-loaders - babel 6 plugin which allows to use webpack loaders
12:54:10 ПП
User 40529464
для стилей
12:54:17 ПП
User 150513139
боже кто так вообще делает?
<img src={require('./img.png')} />
12:54:20 ПП
User 150513139
это зачем?
12:54:29 ПП
User 40529464
а для картинок небольшая утилита резолвит url для картинок в рантайме на сервере
12:54:37 ПП
User 40529464
на основе webpack stats
12:55:05 ПП
User 40529464
который я все равно должен получить, чтобы иметь список css/js для каждой entry point
12:55:15 ПП
User 40529464
туда и картинок список складывается в json
12:57:41 ПП
User 117372400
User 150513139
это зачем?
Чтобы для маленьких картинок (например меньше 10кб) не создавать отдельных http-запросов, они будут закодированы в base64
01:30:57 ПП
User 4627228
Была уже ссылка?)
01:30:57 ПП
User 4627228
Прогрессивные веб-приложения и расширяемый веб, доклад Брюса Лоусона с Render в Оксфорде — http://www.brucelawson.co.uk/2016/web-next-progressive-web-apps-and-extensible-web/
01:32:13 ПП
User 185980313
здесь не было )
03:32:05 ПП
User 202047214
Кто-нибудь может подсказать, из @connect можно дотянуться до componentDidMount ? Или там только stateless components и фиг вам?
03:35:32 ПП
User 145527694
Там props доступны по ownProps
03:40:45 ПП
User 202047214
Почему то раньше не заводилось, нормально класс передался, ошибся где-то наверное.
05:34:42 ПП
User 23384802
боже кто так вообще делает?
<img src={require('./img.png')} />
05:34:42 ПП
User 23384802
это зачем?
05:34:48 ПП
User 23384802
плюсую. base64 место в ксс
05:39:05 ПП
User 23384802
https://github.com/RamonGebben/react-perf-tool
github.com/RamonGebben/react-perf-tool
react-perf-tool - Debug performance of your React application
06:10:29 ПП
User 152745946
а при чем тут base64?
06:10:49 ПП
User 152745946
В вебпаке так можно получить url картинки. Совсем необязательно это будет base64
06:13:33 ПП
User 23384802
ну, на самом деле я погорячился. Как только написал тут же понял, что преимуществ у такого подхода много - чего стоит инкапсуляция всего компонента, когда еще и ксс модули юзаются. Потом снес папку и все файлы, которые нужны компоненту тоже удалились, не надо по папке /static/ бегать, например. Ну,  и плюсы описаные выше тоже) В последнем проекте просто отказались от этого, но в следующем обязательно заюзаю снова
06:14:55 ПП
User 152745946
у нас html в js. Пора отказаться от слова ненормально :)
06:17:27 ПП
User 23384802
на сервере, чтобы не падало, можно заюзать
06:17:30 ПП
User 23384802
https://github.com/aribouius/asset-require-hook
github.com/aribouius/asset-require-hook
asset-require-hook - A require hook for importing asset files during runtime
06:17:34 ПП
User 23384802
или самому написать. там мало кода
06:19:27 ПП
User 152745946
а еще можно узнать о target свойстве webpack конфига ;)
06:20:53 ПП
User 23384802
ну, это я про обычный импорт роута без вебпака на сервере
06:20:59 ПП
User 23384802
выше с этого началось обсужденеи)
06:26:04 ПП
User 40529464
User 23384802
ну, это я про обычный импорт роута без вебпака на сервере
А это разве не deprecated? https://github.com/aribouius/asset-require-hook/blob/master/src/hook.js#L2
github.com/aribouius/asset-require-hook/blob/master/src/hook.js
asset-require-hook - A require hook for importing asset files during runtime
06:27:18 ПП
User 4274761
реакт умеет ловить события клавиатуры на дивах?
06:27:38 ПП
User 4274761
onKeyPress, onKeyUp и onKeyDown вообще не триггерятся
06:27:52 ПП
User 4274761
не назначать же руками в DidMount
06:30:32 ПП
User 40529464
User 4274761
реакт умеет ловить события клавиатуры на дивах?
Может это поможет - http://stackoverflow.com/a/3759382
stackoverflow.com/questions/3759339/keypress-on-a-div-tag/3759382
Is there a way to get work .keypress on a div element like this?: <!-- $('#idtext').keypress(function(event) { var keyCode =
06:30:51 ПП
User 40529464
Там предлагают добавить tabindex
06:31:06 ПП
User 4274761
агаа, это вообще в жс проблема? странно, что раньше не замечал
06:31:14 ПП
User 4274761
решил сделать обычное закрытие по Esc
06:32:13 ПП
User 4274761
навесил на документ =)
06:32:54 ПП
User 649317
User 4274761
реакт умеет ловить события клавиатуры на дивах?
этот див должен быть в фокусе чтобы поймать эвент вроде
06:33:28 ПП
User 145527694
User 40529464
Там предлагают добавить tabindex
Да, тоже самое с onFocus & onBlur
07:30:21 ПП
User 4627228
Кто-нибудь использует RethinkDB?
07:30:38 ПП
07:30:50 ПП
User 4627228
Бывают лаги или всё прямо идеально?
07:31:02 ПП
User 152745946
бывают
07:31:14 ПП
User 152745946
если нужны выборки - не вариант вообще
07:31:37 ПП
User 152745946
может на большом объеме данных с кластером имеет смысл ее брать
07:32:23 ПП
User 152745946
банальная выборка с джойном и 2-3 условиями фильтрации на 1к записей может спокойно вызвать 100к ридов внутри базы
07:32:40 ПП
User 4627228
Жесть
07:32:51 ПП
User 4627228
А сам канал коммуникации с клиентским приложением?
07:32:53 ПП
User 152745946
на серваке 32гб оперативки, данные влезают в память, rethink все с диска читает
07:33:04 ПП
User 4627228
Бывает, что уведомления об изменениях не проходят?
07:33:17 ПП
User 152745946
возможно, я это не мониторю
07:33:25 ПП
User 152745946
но с этой точки зрения все ок
07:33:51 ПП
User 152745946
коммуникация, API - идеальное, мне нравится сильнее, чем в монге
07:33:56 ПП
User 152745946
и сама идея отличная у базы
07:34:16 ПП
User 152745946
но банально делаешь filter - получаешь fullscan
07:34:28 ПП
User 23384802
А с индексами лучше?
07:34:32 ПП
User 152745946
а без разницы
07:34:38 ПП
User 152745946
у базы нет оптимизатора запроса
07:34:42 ПП
User 4627228
Но я так понимаю, серверную часть можно свою подставить
07:35:05 ПП
User 152745946
индексы используются только внутри orderBy, get, getAll и еще где-то наверное, но остальное мне не нужно
07:35:27 ПП
User 152745946
и везде где используются всегда надо явно сказать - используй индекс
07:35:50 ПП
User 152745946
то есть с этим жить можно, но если нужны выборки по данным - бери постгрю или еще что-то под этот кусок
07:36:18 ПП
User 309556
постгря — наше все
07:36:40 ПП
User 152745946
есть совсем маленький проект (петпроджект) с большим read/write, там выборок нет, работает идеально на слабом железе
07:36:41 ПП
User 23384802
Использую ретинк в не особо большом проекте, поэтому не сталкивался с проседанием по скорости. Но для меня ретинк умер, когда я не нашел апи для создания таблицы, если она еще не сущетсвует. А т.к. в бд нет ни миграций, ни схем, то в результате написал короткий утилс, который проверяет существует ли таблица и если нет, то создает её. Но все запросы у ретинка разумеется асинхроннные  и каким-то образом получилось, что таблица создалась 2 раза.
То есть 2 запроса одновременно проверили, что нет таблицы и запускали асинхронный запрос её создания. "это было на открытие страницы.
Казалось бы - ну да ладно. Но ретинк смог создать 2 таблицы с 1 именем
07:36:43 ПП
User 23384802
и просто умер навсегда
07:36:48 ПП
User 23384802
отказал экспорт, запуск, импорт
07:36:49 ПП
User 41482050
Посоны, прошу не бить за тупой вопрос.
Насколько я понял, реакт - это просто въюха.
Которая рендерится сервером.
Можно ли приделать туда контроллер(ы), чтобы получать данные с RESTful бэкенда?(Как в mvc frontend фреймворках)
И где в таком случае останется роутинг?
Спасмбо.
07:36:51 ПП
User 23384802
жесть
07:37:30 ПП
User 23384802
в ошибке так и писал - 2 таблицы с одним именем
07:37:47 ПП
User 309556
жесть внатуре
07:38:17 ПП
User 152745946
и еще. Мне тут нужно сделать для петпроджекта распределенный debounce, я гуглил, узнал, что у redis все для этого есть, в тч нотификации о внутренних событиях
07:38:41 ПП
User 152745946
они достаточно недавно это написали, так что скорее всего кусок функционала можно покрыть редиской, вместо rethink
07:41:07 ПП
User 4627228
т/е уведомления об изменения через Redis? :)
07:41:13 ПП
07:41:42 ПП
User 152745946
http://redis.io/topics/notifications
07:41:52 ПП
User 656567
С https://github.com/luin/ioredis это ещё и приятно делать
github.com/luin/ioredis
A robust, performance-focused and full-featured Redis client for Node.js. - luin/ioredis
07:42:01 ПП
User 152745946
в моем случае SET foo 1 && EXPIRE foo 30
07:42:23 ПП
User 152745946
далее как и работает debounce каждый раз ставим EXPIRE foo 30
07:42:41 ПП
User 152745946
а выполняем действие по нотификации о expire событии от редиса
07:44:43 ПП
User 152745946
поэтому скорее всего redis можно взять вместо rethink в ряде случаев
08:56:01 ПП
User 202047214
connect же возвращает компонент, в который проброшены просто дополнительные пропсы? Реакту почему-то не нравится случай, когда делаешь что-то подобное:
class bar extends React.component { render() { <div /> } }
let foo = () { return connect()(bar) }
extend default foo;
08:57:43 ПП
User 145527694
User 202047214
connect же возвращает компонент, в который проброшены просто дополнительные пропсы? Реакту почему-то не нравится случай, когда делаешь что-то подобное:
class bar extends React.component { render() { <div /> } }
let foo = () { return connect()(bar) }
extend default foo;
mb exports?
08:57:57 ПП
User 202047214
ой, это сейчас опечатался
08:58:11 ПП
User 202047214
export default foo
08:58:39 ПП
User 145527694
а что пишет?
08:58:46 ПП
User 202047214
bundle.js:1083 Warning: MainFormDestination(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.
08:59:05 ПП
User 202047214
MainFormDestination === foo
08:59:45 ПП
User 145527694
const foo = () => connect()(bar);
...
render (foo());
09:00:00 ПП
User 145527694
так идет вызов? это же функция
09:00:59 ПП
User 145527694
я имел в виду ReactDOM.render
09:02:35 ПП
User 145527694
короче, в любой непонятной ситуации: console.log(...)
09:02:55 ПП
User 202047214
я на нем и сижу)
09:03:05 ПП
User 202047214
лог на логе и логом погоняет)
09:03:29 ПП
09:03:57 ПП
User 12791
у меня глупый попрос. как в typescript заимпортить обычный javascript file? :)
09:04:11 ПП
User 12791
var a = require('./ajs'); эквивалент
09:04:30 ПП
User 145527694
User 12791
у меня глупый попрос. как в typescript заимпортить обычный javascript file? :)
а сборка чем идет?
09:05:11 ПП
User 145527694
если webpack, можно лоадеры использовать
09:06:17 ПП
User 12791
подозреваю что просто компайлится  require('typescript').compile
09:07:08 ПП
User 12791
ага
const tsc = require('typescript');

module.exports = {
  process(src, path) {
    if (path.endsWith('.ts') || path.endsWith('.tsx')) {
      return tsc.transpile(
        src,
        {
          module: tsc.ModuleKind.CommonJS,
          jsx: tsc.JsxEmit.React,
        },
        path,
        []
      );
    }
    return src;
  },
};
09:07:38 ПП
User 202047214
User 145527694
так идет вызов? это же функция
вызов идет, но ругается, на то, что класс
09:09:28 ПП
User 202047214
все эти обертки правда из-за попыток передать контекст при диспатче экшенов, чтобы все редьюсеры использующие этот стейт не обновляли его
09:25:06 ПП
User 145527694
Если необходимо иметь доступ к стейту в action, посмотри на redux-thunk
09:25:41 ПП
User 145527694
А в редюсере должно быть вообще минимум логики
09:25:51 ПП
User 202047214
не, доступ к стейту мне там не нужен
09:27:28 ПП
User 202047214
у меня кейс а ля 
combineReducers({
fromSuggest: suggest,
toSuggest: suggest
})
09:28:01 ПП
User 202047214
если в таком виде вызывать, то при диспатче экшена стейт в 2х местах сразу обновится
09:30:38 ПП
User 202047214
поэтому пробовал для каждого редьюсера биндить свой контекст и экшены с ним же диспатчить, но наткнулся на то, что хочу сделать контейнер, который можно вызвать с разным контекстом, а в mapDispatchToProps не могу его пробросить
09:30:57 ПП
User 145527694
Попробуй решить с помощью именования action types, я делаю их с префиксом, который можно менять через фабрику. Не лучшее, возможно, но решение
09:31:59 ПП
User 202047214
Что-то похожее читал в issues редакса
09:33:07 ПП
User 108543364
User 202047214
поэтому пробовал для каждого редьюсера биндить свой контекст и экшены с ним же диспатчить, но наткнулся на то, что хочу сделать контейнер, который можно вызвать с разным контекстом, а в mapDispatchToProps не могу его пробросить
Сделай кастомный диспатч
09:33:08 ПП
User 145527694
Я недавно тоже столкнулся с этим, пришлось городить фабрики для редюсеров и экшенов, которые параметризуются префиксом.
09:33:47 ПП
User 108543364
Эх, у всех одна и та же боль с редаксом
09:34:27 ПП
User 108543364
Отсутствие нормального вея для изоляции компонента
09:35:04 ПП
User 145527694
Да, такие дела..
09:35:16 ПП
User 202047214
Странно, что она как-то заминается постоянно) Куча issues таких уже, которые постепенно закрываются и такое ощущение, что ни у кого нет абстрактных экшенов не привязанных жестко к конкретному компоненту
09:35:35 ПП
User 145527694
Сложно реюзать редюсеры
09:35:56 ПП
User 108543364
User 202047214
Странно, что она как-то заминается постоянно) Куча issues таких уже, которые постепенно закрываются и такое ощущение, что ни у кого нет абстрактных экшенов не привязанных жестко к конкретному компоненту
Я использую Ducks
09:36:27 ПП
User 108543364
И type-to-reducer, вроде немного облегчает жизнь
09:36:51 ПП
User 202047214
Гляну
09:36:59 ПП
User 108543364
И еще надо все данные нормализованными обязательно хранить
09:37:53 ПП
User 145527694
Normalizr?
09:38:07 ПП
User 108543364
User 145527694
Сложно реюзать редюсеры
Ну и фабрики с редьюсерами
09:38:09 ПП
09:38:40 ПП
User 108543364
На самом деле можно и без него
09:39:09 ПП
User 108543364
Но чтоб хеши нормализованные были
09:39:15 ПП
User 145527694
Короче, из простого редакса получается по размеру ангуляр:(
09:39:39 ПП
User 145527694
То есть одноуровневые?
09:39:46 ПП
User 108543364
Ангуляр мне больше нравился :)
09:40:02 ПП
User 108543364
User 145527694
То есть одноуровневые?
Ну да
10:00:57 ПП
User 202047214
пф, еле нашел, что mapStateToProps и mapDispatchToProps во втором аргументе держат ownProps
10:06:21 ПП
User 89478045
User 202047214
пф, еле нашел, что mapStateToProps и mapDispatchToProps во втором аргументе держат ownProps
Было такое, тоже не сразу заметил =)
10:08:35 ПП
User 202047214
чуть не накрутил хаков)
10:08:48 ПП
User 162236709
чуть не накрутил хакатонов
10:16:11 ПП
User 309556
чуть не нахачил крутонов
10:17:43 ПП
User 89478045
@chicoxyzzy ты никак протрезветь не можешь? 😂
10:29:42 ПП
User 104477
А зачем?