в моем собственном приложении для реагирования я хочу использовать mobx для управления состоянием, мой магазин разделен на несколько магазинов / файлов, и, поскольку я хочу иметь возможность вызывать действия магазина из других магазинов, я реализую GlobalStore, где я создаю экземпляры других магазинов .
Я хочу иметь возможность делать что-то подобное из моих компонентов
import { PostStore } from '../stores/PostStore.js'
import { UserStore } from '../stores/UserStore.js'
import { VenueStore } from '../stores/VenueStore.js'
class GlobalStore
{
postStore = new PostStore(this);
userStore = new UserStore(this);
venueStore = new VenueStore(this);
}
export default new GlobalStore;
Это делает так, что, используя собственный API Context-Provider, я могу вызывать каждое действие магазина во ВСЕХ моих компонентах, используя globalStore в качестве ссылки:
В любом компоненте я могу:
globalStore.postStore.listPosts()
Однако я все еще не уверен, как мне получить доступ к другим действиям магазина из ДРУГИХ МАГАЗИНОВ.
Что делать, если внутри postStore я хочу использовать spinnerStore (для отображения ожидающих вызовов axios, состояния ошибки или успеха):
@action.bound getPosts = flow(function * (payload)
{
this.spinnerStore.setData({status: 1});
try
{
this.spinnerStore.setData({status: 2, response: response});
let response = yield axios.get('/api/posts', { params: payload })
return response;
}
catch (error) {
console.error(error);
this.spinnerStore.setData({ status: 3, errors: error });
throw error;
}
})
Здесь spinnerStore будет неопределенным ...