
Artem
19.07.2018
22:10:13
слушайте, архитектурный тупик, вот юзаю redux для источника данных для рендера компонентов, всё отличненько, фича имеется свой редюсер, всё зашибись, фичу можно отвзять от ридакса, дать другой источник и все кулл, но как только фича имеет внутри фичу, получается кракен, кто нить с таким справлялся?

Artyom
19.07.2018
22:10:29
слушайте, архитектурный тупик, вот юзаю redux точка

Artem
19.07.2018
22:11:06
что бы решало проблему выше

Google

Artyom
19.07.2018
22:12:22
Нормализация, видимо

Abu
19.07.2018
22:12:45

Artem
19.07.2018
22:12:47

Artyom
19.07.2018
22:13:13
а по подробнее?
В смысле ты у себя нормализуй. Сделай все плоско и отдельно связи пропиши

Дмитрий
19.07.2018
22:13:22

Artem
19.07.2018
22:14:13

andretshurotshka?❄️кде
19.07.2018
22:14:14
window.store = new Proxy

Abu
19.07.2018
22:14:26

Artem
19.07.2018
22:14:33

Дмитрий
19.07.2018
22:15:10
Да даже window есть не всегда ?

Artem
19.07.2018
22:15:34

Andrew
19.07.2018
22:16:07

Google

Дмитрий
19.07.2018
22:16:08
Он для такого и задумывался

Abu
19.07.2018
22:18:06
Все просто и не нужен эффектор (сарказм)

Дмитрий
19.07.2018
22:18:22

andretshurotshka?❄️кде
19.07.2018
22:18:25

Дмитрий
19.07.2018
22:18:26
Там мой стор лежит
?

Artem
19.07.2018
22:19:07
ты про сср?)
не, про редюсер и фичу, и проблема когда фича в фиче, изолированность ридакса от реакта идет прахом)

Artyom
19.07.2018
22:23:11
Ух
https://habr.com/post/348586/

Дмитрий
19.07.2018
22:25:40
что то сходу не вьехал в него)
Основные приемы:
const addItem = createEvent('name')
const list = createStore([])
list.on(addItem, (list, item) => [... list, item])
const lengthMessage = list.map(
list => 'length: ' + list.length
)
const both = createStoreObject({list, lengthMessage})
both.watch(obj => {console.log(obj.lengthMessage)})
addItem('foo')
addItem('bar')
// => length: 1
// => length: 2
Каждый createStore — как отдельный редакс-стор, чтобы их можно было вычислять по раздельности
createEvent создает action creator, функцию вызывающую обновление всех слушателей, подписанных через .on и .watch

Abu
19.07.2018
22:28:13

Дмитрий
19.07.2018
22:28:45
Чтобы в примере упомянуть createStoreObject)
Естественно можно навешивать сразу, так даже лучше)

Artem
19.07.2018
22:29:56

Abu
19.07.2018
22:30:02

Дмитрий
19.07.2018
22:31:11

Artem
19.07.2018
22:32:38
Ага
типа вот забацал я фичу А, со своим стором, стор объединяю, и в фиче Б пропсами прокидываю данные для стора его стора и стора Б, хмммм, чёта сам запутался)))

Google

Artem
19.07.2018
22:33:24
или я просто со стора фичи Б могу брать данные для стора вложенный фиче
во вот это уже на правду похоже становится)

Дмитрий
19.07.2018
22:34:09
Ага

Artem
19.07.2018
22:34:27
блин классная идея)

Дмитрий
19.07.2018
22:35:43
Ещё кстати вот так можно
import {createComponent} from 'effector-react@next'
const LengthMessage = createComponent(
lengthMessage, (props, state) => (
<div>{state}</div>
))
<LengthMessage />

Artem
19.07.2018
22:36:15
@ZeroBias ты когда скринкасты пойдешь пилить на egghead.io ?) там вроде все есть mobx,redux не стоит нарушать традиций

Дмитрий
19.07.2018
22:36:58
Чёрт, по ходу придётся)

Abu
19.07.2018
22:37:15
И доку!

Petr
19.07.2018
22:37:57
axios зачем , есть же fetch

Artyom
19.07.2018
22:39:11

andretshurotshka?❄️кде
19.07.2018
22:39:51

Artem
19.07.2018
22:44:13

andretshurotshka?❄️кде
19.07.2018
22:44:32
не представляю))

Cenator
19.07.2018
22:44:51

Abu
19.07.2018
22:47:33

Artem
19.07.2018
22:49:03

Cenator
19.07.2018
22:49:38
Без let/const нормальному человеку невозможно писать

Artem
19.07.2018
22:50:39

Cenator
19.07.2018
22:51:09

Google

Cenator
19.07.2018
22:51:39
Или компилятор

Artem
19.07.2018
22:51:45

Cenator
19.07.2018
22:51:52

Artem
19.07.2018
22:52:06

Cenator
19.07.2018
22:52:20
В жс просто еррор будет

Artem
19.07.2018
22:52:32
а если комп сгорел?)

Admin
ERROR: S client not available

Artem
19.07.2018
22:52:52
const obj = {}

Cenator
19.07.2018
22:52:53
Не ну завязываться на инструмент не стоит

Artem
19.07.2018
22:52:57
дофига он тебе подскажет

Cenator
19.07.2018
22:53:17
Ты не напишешь obj = lol

Artem
19.07.2018
22:53:20
let,const сахар в плане типизации

Cenator
19.07.2018
22:53:37
В питоне изи
И ищи потом где мутировал ссылку

Abu
19.07.2018
22:54:20
Иммутабельность - наше все.

Artem
19.07.2018
22:54:59
ну блин, его еще нет и вероятней появления во фронте мала, а мы тут уже воюем)

Cenator
19.07.2018
22:55:41
И надеюсь что отовсюду уйдет)

Google

Cenator
19.07.2018
22:55:58
Либо лет конст завезут

Artem
19.07.2018
22:57:27
да не в машине леарнинг, научных расчетах, бэкэнде он плотно засел)
вообще у каждого языка свои плюс, вот к примеру смотри какая красота в R
numbers <- c(1, -1, 3, -2, 0, NaN)
positives <- numbers[numbers>0 & !is.nan(numbers)]
negatives <- numbers[numbers<0 & !is.nan(numbers)]
векторизация вообще огонь)
my_function <- function(args) {
return(args)
}
my_function(10)
функции, аля js, если только странный символ присваивания отбросить)

Дмитрий
20.07.2018
02:33:36
Зачем писать return, компилятор сам не поймет где он?
let foo = {
let bar = 10;
bar;
}; всё что в блоке последнее — становится return, изи

Kirill
20.07.2018
04:07:50
Реализую плейсхолдер.
Есть экшн, оповещающий сагу о необходимости начать загрузку. Сага после загрузки данных диспатчит экшен в редьюсер о успешной загрузки.
В каком месте можно дать знать компоненту производящему рендер загруженных данных, что загрузка идёт и надо показать спинер?
Можно ли для этого считывать экшен в редьюсере, предназначенный для саги и переключать флажок fetching?

Petr
20.07.2018
04:39:58

Oleg
20.07.2018
04:46:45


Kirill
20.07.2018
05:15:07
> Есть экшн, оповещающий сагу о необходимости начать загрузку
В редьюсере на этот экшен навешиваешь, как выше сказали, isLoading: true, после успешного выполнения или нет isLoading: false
Это я понимаю. Тут вопрос немного в другом. Работая с танками, считывал в редьюсере оба экшена - экшен оповещающий о начале загрузки и экшен, говорящий о том, что данные пришли. Но в сагах, сначала диспачится экшен для саги, а редьюсер начинает работу только, когда данные пришли.
ВОПРОС: правильно ли будет обрабатывать экшен type: "FETCHING" в редьюсере, если этот же экшен считывается сагой?
То есть, диспачится экшен type: "FETCHING" и вотчер-сага говорит рабочей саге начать загрузку нужных данных, после этот же экшен type: "FETCHING" доходит до редьюсера и говорит что надо переключить флажок.
Это нормально или стоит делать как-то иначе?


Oleg
20.07.2018
05:21:20
Сначала экшен хватает редьюсер, ставит isLoading: true, потом его ловит сага, начинает загружать, потом возвращает резуьтат в редьюсер

Тима
20.07.2018
05:30:00
Всем добрый день, не подскажите хороший ресурс с которого можно было бы начать обучение React? Пока прохожу курс на freecodecamp.org

Cenator
20.07.2018
05:38:21
react.express

Тима
20.07.2018
05:40:06