
Дмитрий
03.05.2018
21:33:38
Я не знаю, я чисто за идею болею

Cenator
03.05.2018
21:33:39

Дмитрий
03.05.2018
21:33:41
?

Play
03.05.2018
21:35:12

Google

Valeriy
03.05.2018
21:37:51
а вот тут в закладочке preview он тебе что показывает?
веб страничку?
есть вариант, что экспресс с роутами коряво настроен
одно дело дев окружение

Cenator
03.05.2018
21:38:26
ну тогда логай что выдает __dirname и добирайся до своей папки

Valeriy
03.05.2018
21:38:29
где вебпак дев сервер
@ZeroBias effector какую версию лучше брать? мастер? 0.14? девелоп?

Дмитрий
03.05.2018
21:52:20
Девелоп, я её сегодня замержу в мастер

Valeriy
03.05.2018
21:52:41
а вообще есть какой то роад мап по развитию либы?
там не ишью совсем

Дмитрий
03.05.2018
21:53:37

Valeriy
03.05.2018
21:56:28
вот из этих 4-х сущностей Domain, Event, Effect, Store

Google

Valeriy
03.05.2018
21:56:35
в принципе понятно все кроме домена пока

Дмитрий
03.05.2018
21:56:51
Не стесняйтесь кстати открывать issues если что-то не понятно, так гораздо проще работать над проблемами

Valeriy
03.05.2018
22:01:39
ага понятно
сейчас схожу за пивОм и начну колбасить с эффектором
постоянно нужны новые идеи, а то работа превращается в какую то рутину :))

Дмитрий
03.05.2018
22:04:13
Идея такая примерно
import {createStoreComponent} from 'effector-react'
import {createStore} from 'effector'
const fooStore = createStore('foo')
const Foo = createStoreComponent(fooStore)
const App = () =>
<Foo>
{foo => <div>{foo}</div>}
</Foo>
То есть это как Consumer в новом контексте

Valeriy
03.05.2018
22:14:33
а ну это типа Provider из react-redux
@ZeroBias я так понимаю ничто не мешает использовать две парадигмы совместно тут типа редакс и эффектор?
т.е. где хочешь оборачиваешь в коннект редакса
где хочешь юзаешь ваш подход

Дмитрий
03.05.2018
22:20:54
Ну да

Valeriy
03.05.2018
22:21:15
вот эта связка часто вижу в примерах
.reset(resetForm)
const resetForm = createEvent('reset form')

Дмитрий
03.05.2018
22:21:48
Эвент, который сбросит состояние стора в дефолтное значение

Valeriy
03.05.2018
22:21:53
просто обнуление стейта?

Google

Valeriy
03.05.2018
22:21:58
ага понял
т.е. если сработает resetForm где-то, то соответствующий стейт обнулится

Дмитрий
03.05.2018
22:22:40
Ага
Первая мысль — можно же сделать .on(resetForm, () => initialState) но на практике гораздо приятнее не иметь переменной initialState вообще, ввиду чего появляется потребность в таком хелпере

Valeriy
03.05.2018
22:23:25
кстати каверзный вопрос
что произойдет в случае
.on(changeText, (state, text) => ({
...state,
text,
}))
.on(changeText, (state, text) => ({
...state,
text,
}))
.on(changeText, (state, text) => ({
...state,
text,
}))
т.е. дублирование
по ошибке, опечатке и т.д.
вот в случае [changeText]: ... там будет все понятно даже на уровне IDE
она скажет что ключи задублированы
мне просто с таким паттерном случалось столкнуться в redux-loop
в проекте где парни на это богу молились
ну и огребали соответственно :)))

Дмитрий
03.05.2018
22:27:39

Valeriy
03.05.2018
22:28:06
по хорошему рантайм должен выбросить предупреждение/исключение
все зависит от того билдишьты это один раз
или прогоняешь каждый раз по цепочке

Дмитрий
03.05.2018
22:28:51
Сейчас там отработают оба редьюсера (так как либа по максимуму прощающая косяки), надо это конечно тоже покрыть тестами
А, во

Google

Дмитрий
03.05.2018
22:30:25
Новый редьюсер должен подменить предыдущий без эксепшнов, но с варнингом для разработчика

Valeriy
03.05.2018
22:31:04
ну типа того

Дмитрий
03.05.2018
22:31:09
Сейчас например каждый новый вызов .use подменяет предыдущий вариант, так что это было бы консистентно

Valeriy
03.05.2018
22:31:14
т.е. в любом случае предупрежден значит вооружен

Дмитрий
03.05.2018
22:31:21
Ага
.on(changeText, (state, text) => ({
...state,
text,
}))
.on(changeText, (state, text) => ({
...state,
text,
}))
.on(changeText, (state, text) => ({
...state,
text,
}))
Хинт — ты можешь вешать .on на text store, в таком случае объединённый стор будет обновляться сам, а запись будет существенно проще
const text = createStore('')
const foo = createStoreObject({text})
text.on(changeText, (state, str) => str)

Valeriy
03.05.2018
22:36:50
у меня есть своя наработка для редакса с очередями запросов их прерыванием и всем набором, при чем там без разницы через что приходит ответ через веб сокеты, евент соурс или рест апи, т.е. ты можешь в любой комбинации делать запросы и принимать ответы, все это однозначно связывается между собой + отрабатывают канцелы и таймауты
но есть нюанс
слишком слжная инициализация приложения и надо все это перерабатывать конечно
там асинхронные импорты одни ждут других и т.д.

Дмитрий
03.05.2018
22:37:42

Valeriy
03.05.2018
22:37:50
я хочу все упростить для себя
убрать на фиг всю магию из новых проектов

Дмитрий
03.05.2018
22:38:08
Я с пурскрипта avar портировал, лолл. Но поюзав, я отказался от этого, слишком сложная имплементация

Valeriy
03.05.2018
22:38:09
старые работаеют норм как часики
но в новые затаскивать все это не хочу
ну вот представь у меня там экшины где создаются есть декоратор
когда он вызывается он должен зарегать все и создать класс новый
который должен знать что такое стор редакса
которого пока нет

Google

Valeriy
03.05.2018
22:39:34
ну и дальше начинаются танцы с бубном
куча промисов

Дмитрий
03.05.2018
22:39:44

Valeriy
03.05.2018
22:39:46
ждем стораджа
и погнали

Дмитрий
03.05.2018
22:39:58
ну понятно
Оочень крутая штука, но объективно слишком сложно, пришлось удалить её
Там упорядоченные reads, ты физически не можешь прочитать значение раньше чем оно появится
Решил что лучше заимплеменчу поверх базовых функций эффектора

Valeriy
03.05.2018
22:41:40
ну вот как бы в целях познания мира это все прикольно
но со временем хочется какой-то простоты

Дмитрий
03.05.2018
22:41:53
Угу

Valeriy
03.05.2018
22:41:54
и прозрачности

Дмитрий
03.05.2018
22:42:16
В моём случае скорее предсказуемости

Valeriy
03.05.2018
22:42:17
чтобы все всегда держать под контролем

Дмитрий
03.05.2018
22:43:33
await внутри логики в данном случае означает отсутствие контроля, для меня это было прям огромной проблемой, когда я имел только эпики
Поэтому эффектор без блокирующих операций)

Valeriy
03.05.2018
22:44:27
ну я сейчас где руки дотягиваются убираю эвейты
раньше пихал туда сюда обратно
наверное из-за недопонимания
вон в апи которое выше кидал