
Gleb
02.03.2017
06:49:51
Привет, кто как составные ключи записывает в key value в стор?
какой то префикс между ключами добавляете, типа entitty1_id__entity2_id?
При нормализации

Yan
02.03.2017
07:00:51
А что хранить?

Google

Gleb
02.03.2017
07:02:22
Список сущностей
в нормализованном виде, то есть отделньо ids, отдельно key value список
У сущности только pk нет, только два fk

Ilya
02.03.2017
07:03:37

Gleb
02.03.2017
07:03:56
нет

Ilya
02.03.2017
07:04:22
нет
Тогда выбирай любой, иначе лучше строить маппинг

Gleb
02.03.2017
07:04:43
т.е маппинг?

Ilya
02.03.2017
07:06:23
Рассчитывать кастомный ключ на основе двух fk
Hash же

Gleb
02.03.2017
07:07:23
сложней чем просто префикс?
что значит рассчитывать не совсем понимаю

Ilya
02.03.2017
07:11:58

Yan
02.03.2017
07:13:23
http://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/

Google

Yan
02.03.2017
07:13:38
Или даже на коленке завелосипедить

Gleb
02.03.2017
07:18:56
Спасибо всем!
Я так понимаю хеш лучше чтобы ключ по меньше был просто
и еще хотел спросить как избавиться от такого:
Есть опять таки список с сущностью, этот список используется на странице А и на странцие Б, только для страницы А свои парамтеры для получения этого списка и для страницы Б - свои, при уходе со страницы А поэтому приходится подчищать его каждый раз, но хранить одну сущность дважды мне говорили что плохая практика, то есть отдельно для страница А и отдельно Б, собственно чувствую что делаю что то не то раз приходится подчищать, в чем ошибка моя?
Список хранится в сторе
его и подчищаю

Evgeny
02.03.2017
08:05:30
Народ, кто подскажет как в redux-saga на один action type затригерить 3 саги подряд?
в таком плане внутри выглядит rootSaga:
...
yield takeEvery(actionTypes.OPEN_POPUP, fetchNewOrder);
yield takeEvery(actionTypes.OPEN_POPUP, fetchTourPartners);
yield takeEvery(actionTypes.OPEN_POPUP, fetchTourCities);
...

Sergei
02.03.2017
08:13:11
попробуй сделать вотч-сагу типа:
while(true) {
const action = yield take(actionTypes.OPEN_POPUP);
yield [yourSagas].map(saga => fork(saga, action));
}

Ivan
02.03.2017
08:13:35

code4aman
02.03.2017
08:17:51

Alexandr
02.03.2017
08:45:18
Здоавсвуйте! Подскажите как подключить скрипт к реакту, на примере Jquery(без npm), подключаю в header, потом пытаюсь использовать пишет, '$ is not define'

Mike
02.03.2017
08:48:44
Webpack provide plugin

Alexandr
02.03.2017
08:58:16
это для модулей из npm, а я говорю о скриптах которых нет в npm

Mike
02.03.2017
09:01:42
Нет
Гугли, он как раз файлы может подключать

Alexandr
02.03.2017
09:03:10
ок, спасибо

Anton
02.03.2017
09:03:58

Alexandr
02.03.2017
09:06:35
речь не только о jquery

Антон
02.03.2017
10:08:33
npm run eject разбирает react-scripts?

Google

Dmitry
02.03.2017
10:10:30
да
у меня не сыпались ошибки, пока не сделал npm run eject
что-то внутри там не чисто )

Антон
02.03.2017
10:11:40
да
если мне конфиги вебпака поменять надо, то что надо?

Dmitry
02.03.2017
10:12:00
ага
только в обратную сторону не работает

Антон
02.03.2017
10:12:21
ай блять у меня интернет на пару сек пропал и ssh дисконнектнуло
фух, приконнектилось обратно

b
02.03.2017
10:29:36
tmux используй

ENAMETOOLONG
02.03.2017
10:33:23
Screen

Andrew
02.03.2017
10:34:36
Shot

Антон
02.03.2017
10:37:14
ебаные peerDependencies

Slava
02.03.2017
10:43:14
господа, подскажите п-ста статейки на тему - как организовывать npm-модули. у нас внутренние либы живут в отдельных репах, но билдит их webpack основного проекта, и там куча проблем (например надо всякие лоадеры подключать в эти самые либы, чтобы вебпак нормально отрабатывал). Скорее всего мы что-то делаем не так, и например либы надо собирать отдельно, чтобы там был свой dist, который и подключается. Но что-то чтива на эту тему толкового не нашел.

Azein
02.03.2017
10:45:21
У меня крайне скудный опыт публикации чего-то в npm, но пакеты можно собирать в свой дистрибутив, да. И оттуда импортировать то, что нужно, как из любой подключенной библиотеки.

Дима
02.03.2017
10:45:25
будет удобно, если они будут билдиться на пребалише

Slava
02.03.2017
10:46:03
тут npm как установщик, а не как хранилище имел ввиду

Azein
02.03.2017
10:46:50
Да суть неважно, npm может и с гх ставить. Попробуйте собрать дистрибутивы своих моно-пакетов.
Там эта "тема" в одной строчке скрипта в package json ограничится, скорее всего.

Google

Дима
02.03.2017
10:49:06
https://docs.npmjs.com/misc/scripts — тут описан prepublish.
вписывате туда локальную для пакета команду сборки (например тот же webpack)
затем в package указываете в качестве main файл, который будет собран в итоге
этот файл и будет подключен при импорте либы

Slava
02.03.2017
10:49:42
спасибо

Aleh
02.03.2017
10:53:43
storybook не переходит на webpack2, потому что конфиг некому поправить?

Andrey
02.03.2017
11:01:00
Там pr есть уже, но разработчик сторибука пропал
Делает next.js

Aleh
02.03.2017
11:02:02
у них ж дефолтный конфиг с вебпак2 не заработает

KlonD90
02.03.2017
11:40:10
А кто-нибудь inferno трогал?
Можно на нем игрушечки писать?

Admin
ERROR: S client not available

hlomzik
02.03.2017
12:07:49
Решил окончательно перейти на webpack2, ну и хочу HMR, а теперь вместо старого простого webpack-dev-server без настроек куча фигни накручена — левые пункты в entry, плагины и какие-то новые поля в конфиге, бета react-hot-loaderа (где вообще вторая версия?), какие-то компоненты-врапперы.
Что настолько не так было с предыдущим вариантом? Это бойлерплейт, которого мы заслужили?

Dima
02.03.2017
12:10:45
посоветуйте,как мне пройтись по объектам и сделать detailsId массивом,чтобы избавится от повторений?

Aleh
02.03.2017
12:11:23
map(a => a.detailsId)?

Dima
02.03.2017
12:12:22
action.payload.map((value, i, collection) => {
if (collection[i].orderNumber === collection[i+1].orderNumber) {
detailsIdsArr.push(value.detailsId);
// console.log(detailsIdsArr);
} else {
value.detailsId = detailsIdsArr;
detailsIdsArr = [];
}
return value;
});
ошибка в том,что collection[i+1].orderNumber undefined

Aleh
02.03.2017
12:13:38
а, лол)
const orders = {};
payload.forEach(order => orders[order.orderNumber] = []).forEach(order => orders[order.orderNumber].push(order.detailsId))
получишь в orders для каждого orderNumber список detailsId
а ты чето ваще не то делаешь

Google

Dima
02.03.2017
12:19:02
теперь для второго forEach Cannot read property 'forEach' of undefined

Aleh
02.03.2017
12:20:08
это я туплю
там payload

Котяй Негодяй
02.03.2017
12:22:35

Aleh
02.03.2017
12:23:06

Котяй Негодяй
02.03.2017
12:23:27
А... Там может совпадать.

Aleh
02.03.2017
12:23:32
ну чтобы не в один пихать

Kreizo
02.03.2017
12:23:40
ребят всем привет, есть у кого на гитхабе пример как сделать активный класс по клику на элемент, а то у меня выходит в списке может быть только один активный класс

Котяй Негодяй
02.03.2017
12:23:43
Ну, всё равно редьюсер же.

Kreizo
02.03.2017
12:23:47
с предыдущего снимается по клику
http://pastebin.com/vBdYunBJ

Aleh
02.03.2017
12:24:24

Dima
02.03.2017
12:25:06

Aleh
02.03.2017
12:25:58
const orders = {};
payload.forEach(order => orders[order.orderNumber] = [])
payload.forEach(order => orders[order.orderNumber].push(order.detailsId))

Dima
02.03.2017
12:27:15
А вообще в редюсерах можно изменять action.payload? Насколько я понимаю,нельзя менять state, так как это чистая функция. Или может лучше в экшенах менять action.payload?

Aleh
02.03.2017
13:00:42
а зачем менять?

Dima
02.03.2017
13:03:22
потому что проблема,о которой я писал выше и которую ты решил
я твой вариант переписал вот так :
const newState = {};
const orders = {};
action.payload.forEach(order => {
orders[order.orderNumber] = order;
order.detailsIds = [];
});
action.payload.forEach(order => {
orders[order.orderNumber].detailsIds.push(order.detailsId);
delete order.detailsId;
});
action.payload.forEach(order => newState[order.orderNumber] = order);
return {
...newState,
...orders
};
и теперь получаю так как нужно
И вот вопрос: можно ли вообще такое делать в редюсерах?Или я нарушаю саму идею редюсера?