VueJS / VueX: Часы никогда не вызывается, когда государственная собственность является массивом

Обновить

April 2019

Просмотры

5 раз

0

У меня есть простой поток, которые состоят в:

  • Вызов действия VueX хранить несколько автомобилей на стороне серверной
  • Вызов мутации для хранения новых автомобилей только что создали
  • Объявите часы, которые должны вызываться каждый раз, когда массив автомобилей я изменился

Проблема заключается в том, что мой наблюдатель никогда не вызывается на моем компоненте.

Модуль VueX:

/*
 * State: properties to store
 */
const state = {
    siteCars: []
};

/*
 * Getters: Getters of properties defined in state
 */
const getters = {

    siteCars(state) {
        return state.siteCars;
    }

};

/*
 * Mutations (Setters): Setters of properties defined in state
 */
const mutations = {

    PUSH_CARS(state, data) {
        state.siteCars = _.merge(state.siteCars, data.cars);
    },

};

/*
 * Actions
 */
const actions = {

    /*
     * Action used to create multiple cars
     */
    massImportCars({ commit, rootState }, payload) {

        axiosBackend.post("/cars/massimport", payload,
            {
                headers: { Authorization: rootState.auth.authString }
            }
        ).then(res => {

            commit("PUSH_CARS", {
                cars: res.data.data
            });

        }).catch(error => {});

    },

};

export default {
    state,
    getters,
    mutations,
    actions
};

В моей Вью компонента:

Я просто объявил Бодрствующий на моей собственности siteCars, которые приходят из геттера внутри модуля VueX. Проблема заключается в том, что обработчик никогда не вызывается, когда новые автомобили выталкиваются в состоянии siteCars.

watch: {
   siteCars: {
      handler(val){
         console.log("NEVER CALLED !!");
      },
      deep: true
   }
},
computed: {
   ...mapGetters(["siteCars"]),
},

0 ответы