@react_js

Страница 2327 из 5115
Andrey
16.10.2017
15:46:00
Сурово. А готового решения нет?
а чем оно не готовое решение? Там выбрал руками озу и видео и погнали

Evgeny
16.10.2017
15:47:17
как такую тему с помощью bindActionCreators написать? dispatch => ({ openAccountPopup: () => {dispatch(openPopup('account'))}, })

Google
Юра
16.10.2017
15:48:19
bindActionCreators({ openAccountPopup: () => openPopup('account') }, dispatch);

Enjoy the
16.10.2017
15:49:16
Бля че реакт 16 хуево совмещается или че? Я думал проблем не будет

Сергей
16.10.2017
15:49:32
другие либы тоже существуют

а некоторые любят лезть в кишки реакта

Юра
16.10.2017
15:49:47
Evgeny
16.10.2017
15:49:50
улет, спс

Enjoy the
16.10.2017
15:50:01
Нормально все. Проблемы есть у тебя?
Вроде планируется делоть, но я слышал что не должно быть проблем

Cenator
16.10.2017
15:50:25
мне лень отдельно импорт делать
Как тяжело наверное imrc вместо imr тыкнуть)

Max
16.10.2017
15:50:42
да

у меня автоимпорт

Cenator
16.10.2017
15:52:19
Google
Max
16.10.2017
15:52:33
тьфу

автогенерация

и там стоит import react

а лезть менять лень

Сергей
16.10.2017
15:54:00
Эт как?
ну ты пишешь имя компонента или константы, плагин лазает по проекту и предлагает тебе пути в подсказке жмякаешь tab и импорт улетает вверх

Max
16.10.2017
15:54:11
да, автоимпорт так работает

Max
16.10.2017
15:56:59
Сможет

Сергей
16.10.2017
15:57:00
у меня сниппет

есть вероятность что сделает две строки импортов

Сергей
16.10.2017
16:54:49
dudes, подскажите, а то я сейчас уже мозг сломаю. Есть react и mobx. Хочу декоратор, который будет инжектить стор и следить за его готовностью. Если стор готов - рендерит компонент, если не готов, то рендерит лоадер. То есть примерно так: const store1 = observable({ isReady: false, someRemoteData: null, loadData: action(() => this.isReady = true) }) const store2 = observable({ isReady: true, }) const subscribe = (...storeNames) => Component => { const ObservingComponent = observer(Component) const LoadingWrapper = props => { const isReady = every(storeNames, storeName => props[storeName].isReady) return isReady ? <ObservingComponent {...props} /> : <Loading /> } return inject(...storeNames)(observer(LoadingWrapper)) } const MyComponent = subscribe("store1", "store2")(({ store1 }) => store1.someRemoteData)

Вот в такой форме это нормально не работает

А как сделать такое правильно?

Max
16.10.2017
16:55:19
recompose branch

Сергей
16.10.2017
16:55:38
так?

ну то есть я знаю что это такое, но чем это поможет?

Max
16.10.2017
16:56:01
ну у тебя же в пропсах передается стор?

(я мобх давно тыкал, не помню)

Сергей
16.10.2017
16:56:37
ну я более-менее завершенный код привел

Google
Сергей
16.10.2017
16:56:46
ты идею объясни ?

Max
16.10.2017
16:57:31
compose( inject(…), branch((props) => !props.store1, <Loading />) )(YourComponent)

вместо props.store1 подставь что там тебе надо мониторить для “готовности”

Сергей
16.10.2017
16:58:20
Я вижу основую проблему того что я написал в том что если в store1 вдруг произойдет изменение isReady = false; someRemoteDate = null, то тогда сначала отрендерится (с ошибкой возможно) MyComponent, а уже потом, если повезет сработает LoadingWrapepr

Ну ты просто написал то же самое что и я, только короче ?

Max
16.10.2017
16:58:44
ну мне лень читать твою портянку )

Сергей
16.10.2017
16:58:57
тогда мой вопрос не будет понятен ?

Сергей
16.10.2017
16:59:08
Да не

смотри

если я правильно понимаю mobx

то если у нас есть дерево компонент и они все объявлены как observer, мобх пытается их ререндерить от самого глубокого

Max
16.10.2017
16:59:52
тогда я пас )

но это

Сергей
16.10.2017
17:00:16
поэтому как бы я не написал этот бранчинг, мне либо придется проверять в каждом компоненте готовность стора (чего я не хочу, затем мне этот декоратор и нужен), либо я хз

ну, либо не передавать в компоненты обсерваблы

Max
16.10.2017
17:00:32
нуууу

вариант

Сергей
16.10.2017
17:00:47
так нет же

Max
16.10.2017
17:00:48
а можно так?

Google
Сергей
16.10.2017
17:00:55
тогда мобх не нужен =)

Max
16.10.2017
17:01:01
compose( inject observable branch )?

Сергей
16.10.2017
17:01:11
ну это ты начинаешь гадать уже ?

Max
16.10.2017
17:01:21
я не гадаю, я спросил)

Сергей
16.10.2017
17:01:40
так, дай сообразить что ты предлагаешь

Admin
ERROR: S client not available

Сергей
16.10.2017
17:01:58
ты предлагаешь сделать HOC обзерваблом?

это как вообще ?

так можно?

Max
16.10.2017
17:02:18
нет, я предлагаю поверх бранча навернуть обсервабле

не знаю позволит ли магия мобх это сделать

Сергей
16.10.2017
17:02:56
брр

ничего не понимаю..

Max
16.10.2017
17:03:41
так

кто тут за мобх топил

щас засаммоним

Алексей

Сергей
16.10.2017
17:53:43
Он подписывается. Но насколько я понимаю проблему - пусть вдруг isReady = false и someRemoteData = null. Были и пропали. Тогда сначала ререндерится конечный компонент, нервничает из-за того что someRemoteData куда-то делся, плюется эксепшенами, а уже только потом (если доживем до этого) ререндерится LoadingWrapper, который должен этот компонент скрыть

Google
Сергей
16.10.2017
17:54:07
Я могу спросить иначе. Хер с ним с моим решением и кодом. Как сделать то что я хочу? ?

Повторю постановку задачи — пусть у меня есть сторы с интерфейсом isReady.

Хочется оборачивать любые компоненты в некий декоратор, который этот isready проверяет и если нет, то вместо компонента я вижу Loading

Алексей
16.10.2017
17:54:57
Не, он не должен эксепшенами сыпать.

Сергей
16.10.2017
17:54:58
Так, чтобы внутри компонента об этом думать не пришлось

Алексей
16.10.2017
17:55:26
const MyComponent = subscribe("store1", "store2")(({ store1 }) => store1.someRemoteData)

вот что меня смущает

а точнее то, что компонент возвращает непонятный store1.someRemoteData

Сергей
16.10.2017
17:56:02
да не

это я просто недописал псевдокод

Алексей
16.10.2017
17:56:15
во первых, если я не ошибаюсь, компоненты-функции не могут возвращать null

а

Сергей
16.10.2017
17:56:23
имеется в виду что компонент обращается к observable значению

там конечно типа => <div>{store1.someRemoteData}</div>

Алексей
16.10.2017
17:56:49
ну если обращается, то по идее будет подписка

то есть он всегд к isReady обращается и подписан

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