Вызов геттера из другого модуля vuex с параметром - PullRequest
1 голос
/ 28 января 2020

У меня есть resident.js

export default {
state : {
    residents: []
},
getters: {
    getResidentsById: (state) => (id) => {
        return state.residents.find(resident => resident.id === id)
    }
}
}

Теперь в другом модуле:

actions: {
    get_registered_medication_list (context) {
        return medicationApi.getRegisteredMedication() 
            .then(medications => {
                const medicationArray = medications.map(medication => ({
                        ...medication,
                        residentName: context.rootGetters['resident/getResidentsById'](medication.resident)
                    })
                );
                context.commit('set_medication', medicationArray)
                return medicationArray
            })
            .catch(error => {
                return Promise.reject(error)
            })
    },

Это дает мне getResidentsById не является функцией. Я хотел установить дополнительное поле в списке лекарств, т.е. добавить поле residentName, временно

1 Ответ

0 голосов
/ 28 января 2020

Go для вашего resident объекта модуля и установите свойство namespaced равным true, поэтому vuex сделает его отделенным и доступным через ['myModule/myModuleResource']

Например

const myModule = {
    namespaced: true,
    actions: {...},
    getters: {...},
    mutations: {...},
    state: {...},
}
export default myModule
...