@react_js

Страница 3216 из 5115
Eugene Y.
20.02.2018
23:25:44
тебе их нужно обернуть в другой компонент и поднять state с методами в него
это первое что в голову пришло, я ищу более простой вариант

Oleg
20.02.2018
23:25:54
а если они вообще никак не связаны, но почему-то вызывают друг друга, то че мы тогда здесь вообще обсуждаем

это первое что в голову пришло, я ищу более простой вариант
это самый простой вариант. есть еще dispatch из redux, но тебе оно пока не надо точно )

Eugene Y.
20.02.2018
23:27:03
а если они вообще никак не связаны, но почему-то вызывают друг друга, то че мы тогда здесь вообще обсуждаем
есть компонент типа консоль, надо чтобы когда в рандомном компоненте случалось рандомное событие это записывалосьв консоль

Google
Dimanius851
20.02.2018
23:27:13
версия 16.2 нужна
теперь на это <React.Fragment>{children}</React.Fragment> ругается Cannot read property 'toLowerCase' of undefined

Oleg
20.02.2018
23:27:52
Dimanius851
20.02.2018
23:28:19
ищи где у тебя в children есть вызов toLowerCase
нет, это вроде из этой оперы https://github.com/zeit/next.js/issues/3019#issuecomment-335052394

у меня toLowerCase нигде нет

Eugene Y.
20.02.2018
23:28:37
для такой ерунды не охота хранилище подключать

Oleg
20.02.2018
23:28:57
Eugene Y.
20.02.2018
23:29:13
обернуть в общий компонент
ну только только так получается

Oleg
20.02.2018
23:29:57
нет, это вроде из этой оперы https://github.com/zeit/next.js/issues/3019#issuecomment-335052394
ну тогда посмотри как ты делаешь export компонента. если с default, то в import без скобок, если просто export, то со скобками

Женя
20.02.2018
23:30:20
Решил потыкать Громмет, открыл доки, а там инсталяция либо через их тулзы и кли, либо древную версию. окееей.

Google
Stepan
20.02.2018
23:30:47
Хоть один аргумент против?

Oleg
20.02.2018
23:31:12
Почему бы нет?
потому что это как совать везде jQuery, когда надо querySelector заюзать

Stepan
20.02.2018
23:31:25
есть кейс, который покрывается редаксом

есть редакс

всё

Oleg
20.02.2018
23:31:56
есть редакс
а есть задача, которая прекрасно решается без него

Eugene Y.
20.02.2018
23:34:08
Почему бы нет?
потому что его (редакс) придется потом убирать т.к. это нужно только мне для отладки

Stepan
20.02.2018
23:36:00
а есть задача, которая прекрасно решается без него
Смотря какой уровень вложенности будет

А чем тебе обычная консоль не нравится?

Смотря какой уровень вложенности будет
через пропсы норм в глубину на 10 уровней прокидывать

?)

Eugene Y.
20.02.2018
23:38:13
ща нарисую зачем мне это

Stepan
20.02.2018
23:38:20
давай

делать всё равно нехуй

)

Eugene Y.
20.02.2018
23:43:24


заебался ловить баги в браузерной консоли и решил прикрутить собственную консоль к каждому экземпляру объекта

надо чтобы в нее кастовалось все что в объеуте происходит

Google
Stepan
20.02.2018
23:45:17
сделай hoc

прикрути его везде, где надо

профит

Eugene Y.
20.02.2018
23:45:57
чёт я про хок не подумал

годная мысль

Kelin
20.02.2018
23:53:54
Хоки, ловящие баги

Хок, скрывающий боль

Stepan
20.02.2018
23:56:35
Andrew
20.02.2018
23:59:12
https://github.com/salfetkin/task_manager Плиз хелп)
https://github.com/salfetkin/task_manager/blob/master/src/tasks.js плохо так делать

такая кострукция условностей нужна, когда нужна очень краткая форма, иначе надо использовать if

Oleg
21.02.2018
00:03:01
Andrew
21.02.2018
00:04:04
просто массив надо вынести в переменную, тогда всё будет норм
тогда такая конструкция будет, да, уместна)

но опасна

Oleg
21.02.2018
00:06:59
тогда такая конструкция будет, да, уместна)
здесь вообще можно написать: const exampleTasks = []; const tasks = (localStorage.tasks && JSON.parse(localStorage.tasks)) || exampleTasks;

Andrew
21.02.2018
00:07:06
const tasks = tryLoadTasks() || initTasks; function tryLoadTasks() { try { return JSON.parse(localStorage.getItem("tasks"); } catch(e) { console.warn('in loading got error'); } return null; }

не стоит забывать об эксепшене у парсера

Oleg
21.02.2018
00:09:10
не стоит забывать об эксепшене у парсера
я про общий стиль, а не про конкретный пример с JSON.parse

Andrew
21.02.2018
00:09:31
ну мы тогда одно и тож написали)

Alexandep
21.02.2018
02:40:55
Всем привет! Я только пришел в React-мир и реализую первые вещи! Пришел поздороваться с сообществом!:)

Artyom
21.02.2018
04:04:28
https://scrimba.com Прикольно! Смотришь скринкаст, ставишь на паузу, форкаешь текущий код, играешься с ним, смотришь дальше

Google
Alexander
21.02.2018
06:07:08
про это но опыта внедерения поддержки и разработки нигде нет(

code4aman
21.02.2018
06:11:21
А там откуда ты эту картинку достал тоже монолитный бандл в коде?

А, там нет даже reference implementation?

Alexander
21.02.2018
06:18:05
Нет исходников

Даже

code4aman
21.02.2018
06:22:51
Да-а, представляю, какой будет зоопарк фреймворков у конечного юзера на странице...

Cenator
21.02.2018
06:44:08
В описание загляните

Nikita
21.02.2018
06:44:49
В описание загляните
Описание чего?)

Cenator
21.02.2018
06:45:02
Описание чего?)
А что ближе всего?

(описание чата)

Nikita
21.02.2018
06:46:24
(описание чата)
А ок, ну бывает ...? А вдруг кого бы нашел)

Cenator
21.02.2018
06:46:47
Правила для всех)

Paul
21.02.2018
06:48:48
Подскажите, есть какая-нибудь библиотека, которая редьюсеры позволяет задать просто как объект {action: function}? Что-то типа такого { user: { ADD_USER: (state, action) => {...}, REMOVE_USER: (state, action) => {...}, }, } вместо классического { user: function (state, action) { switch (type) { case 'ADD_USER': ... case 'REMOVE_USER': ... default: return state; } }, }

Google
Paul
21.02.2018
06:59:48
Да, что-то похожее, спасибо

Есть еще redux-box но там setup сильно меняется

Max
21.02.2018
07:01:38
вы запросили список юзеров и список журналов и ... еще 10 наборов разнородных данных. как будет выглядеть функция-редьюсер? будет ли она "редьюсер"? что будет со стейтом, когда изменится список журналов? теперь уложите это в идею редакса. это редакс? , теперь добавьте туда шаред стейт компонентов - как его обрабатывать? вас сильно это спасло от констант?
Попробую объяснить поподробней - я когда писал проект на редаксе решил не дублировать редюсеры и не создавать кучу отдельных экшенов. Потому что в таких редюсерах непременно будет дублирование функционала подобно такому case "CREATE_PROJECT": { return {...state, projects: {...state.projects, [action.id]: action.data} } case "CREATE_TASK": { return {...state, tasks: {...state.tasks, [action.id]: action.data} } case "CREATE_COMMENT": { return {...state, comments: {...state.comments, [action.id]: action.data} } case "UPDATE_PROJECT": { return {...state, projects: {...state.projects, [action.id]:{...state.projects[action.data.id], ...action.data}} } case "UPDATE_TASK": { return {...state, tasks: {...state.tasks, [action.id]:{...state.tasks[action.data.id], ...action.data}} } case "UPDATE_COMMENT": { return {...state, comments: {[action.id]:{...state.comments[action.data.id], ...action.data}} }Из всего этого меняется только имя таблицы и логично не дублировать функционал и передать имя таблицы параметром case CREATE: { return {...state, [action.table]: { ...state[action.table], [action.id]: action.data}} } case UPDATE: { return {...state, [action.table]: { ...state[action.table], [action.id]: {...state[action.table][action.id], ...action.data}}} }Когда с редаксом мы вынуждены нормализировать стор то все данные будут организованы в плоском списке айдишников в хеш-таблицах. И для того чтобы не дублировать код как выше где дублируется весь код кроме имени мне кажется вполне логичным сделать передачу таблицы параметром и тогда (в идеале) количество экшенов и редюсеров у нас сведется к 3 (плюс еще GET но он обработается в миддлварке). Дальше естественно есть некая бизнес-логика которая не затрагивает добавление, удаления или изменение не одного а много объектов. Эту логику можно конечно оставить в редюсерах и создавать отдельные экшены и редюсеры но почему тогда вообще не использовать редакс как базу данных а логику из редюсеров вынести в отдельные функции вроде thunk-ов или обычных функции. Например тот же редюсер и экшен которы можно назвать как UPDATE_POST_AND_CREATE_TASK а можно просто вынести в thunk который задиспатчит экшен UPDATE передав параметром таблицу "posts" и задиспатчит экшен "CREATE" и передаст параметром таблиу "tasks". И таким образом можно реализовать любую бизнес-логику и не ограничивать себя в невозможности выполнять сайд-эффекты как в редюсерах



andretshurotshka?❄️кде
21.02.2018
07:03:14
логично юзать combineReducers для одинаковых редьюсеров

Tauka
21.02.2018
07:09:02
логично юзать combineReducers для одинаковых редьюсеров
combineActions? Или я что-то не знаю о combineReducers? ?

Андрей
21.02.2018
07:09:15
может вам просто нужен НЕ редакс?

Andrew
21.02.2018
07:09:24
Ээээ

Вот

andretshurotshka?❄️кде
21.02.2018
07:09:29
а actions зачем?)

Andrew
21.02.2018
07:09:51
Всегда будет много одинакового кода

Зато очень легко трекаются все имения стора

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