Vue / Vuex делает дубликаты вызовов API при установке состояния - PullRequest
0 голосов
/ 03 февраля 2020

У меня проблема с тем, что моя конечная точка API вызывается дважды, но ТОЛЬКО когда я устанавливаю состояние в мутации. Вызовы конечной точки API работают как обычно (вызывается только один раз), если состояние не изменилось.

Есть идеи? Все примеры кода и учебники, которые я нахожу, делают то, что я делаю, но что-то явно не так.

Заранее спасибо, код ниже.

Вызов действие от компонента

fetchCalendar() {
    const calendarApi = this.$refs.fullCalendar.getApi();
    const calendarDate = calendarApi.getDate();

    const data = {
        startDate: this.$moment(calendarDate).startOf("day"),
        endDate: this.$moment(calendarDate).endOf("day")
    };

    // CALL THE ACTION
    this.$store.dispatch(FETCH_CALENDAR, data);
},

Вызов API и передача данных в мутацию

[FETCH_CALENDAR]({ commit }, data) {
    CalendarApi.fetch(data)
        .then((response) => {

            const resources = response.staff.map(jsonToCalendarResource);
            const events = [];

            response.appointments.forEach(appointment => {
                appointment.events.forEach(event => {
                    events.push(jsonToCalendarEvent(event, appointment));
                });
            });

            // CALL THE MUTATIONS
            commit(SET_RESOURCES, resources);
            commit(SET_EVENTS, events);
        })
},

Мутация, при которой возникает проблема происходит

[SET_EVENTS](state, events) {
    // If I comment this line, it works as per normal
    state.events = events;
},
[SET_RESOURCES](state, resources) {
    // Same here, if this is commented (along with the above) it works as normal
    state.resources = resources;
},
...