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)
Да вроде нормально всё должно работать. Обзёрверу вообще должно быть пофиг. Да и LoadingWrapper тоже обзёрвер, так что он должен на изменения isReady подписаться
Обсуждают сегодня