Как лучше всего получить сразу несколько хранилищ (с сервера), а не получать их по одному? - PullRequest
0 голосов
/ 02 августа 2020

У меня есть несколько магазинов, таких как категории, единицы, валюты. В моем проекте после успешного входа в систему я загружаю их по одному.

store.getters['category/isReady'] || store.dispatch('category/fetchCategories');
store.getters['currency/isReady'] || store.dispatch('currency/fetchCurrencies');
store.getters['unit/isReady'] || store.dispatch('unit/fetchUnits');

Итак, для каждого я делаю запрос ax ios, получаю данные и сохраняю их. Но вместо этого я хочу сделать один запрос и получить их все, а затем сохранить их сразу.

PS: Кстати, я использую модули с именами для каждого упомянутого магазина.

1 Ответ

0 голосов
/ 02 августа 2020

Благодаря @ tony19 и @Daniel_Knights теперь я использую один запрос для установки всех моих исходных данных со стороны сервера. После получения ответа сервера я сохраняю их для каждого модуля.

Итак, в моем магазине root (store / index. js)

modules: ...
actions: {
    initialize(ctx){
        axios.get(process.env.API_URL + "provide/initials")
            .then((response) => {
                ctx.dispatch('category/setFlat', response.data.flat);
                ctx.dispatch('category/setNest', response.data.nest);
                ctx.dispatch('currency/set', response.data.currencies);
                ctx.dispatch('unit/set', response.data.units);
                ...
            })
            .catch((e) => {
                return { status: 'error', message: 'Problem occurred.', orinigal: e };
            });
        }
    },
...

Пока я ранее отправлял каждый модуль , теперь я просто отправляю root модуль store.dispatch('initialize'); и все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...