Отправьте аргументы как объект:
bgImg() {
return this.backgroundImage({color1: color1, color2: color2})
return this.backgroundImage({color1, color2}) // or shortcut
}
Запустите ваше действие (не в методах получения)
backgroundImage(payload) => {
const {color1, color2} = payload
return 'linear-gradient(to top right, ' + color1 + ',' + color2 + ')';
}
или ярлык
backgroundImage({color1, color2}) => {
return `linear-gradient(to top right, ${color1}, ${color2})`;
}
На самом деле это правильная настройка:
export default {
state: {
backgroundImage: {},
},
mutations: {
SET_BG_IMG(state, payload) {
state.backgroundImage = payload;
},
},
actions: {
setBgImg({ commit }, payload) {
const {color1, color2} = payload
const myImg = `linear-gradient(to top right, ${color1}, ${color2})`;
commit('SET_BG_IMG', myImg);
},
},
getters: {
backgroundImage: (state) => state.backgroundImage,
},
};
На ваш взгляд:
<template>
<div>{{ backgroundImage }}</div>
</template>
<script>
import { mapGetters, mapActions } from 'vuex';
export default {
name: 'YourComp',
computed: {
...mapGetters(['backgroundImage']),
},
mounted() {
this.setBgImg(lang);
},
methods: {
...mapActions(['setBgImg'])
},
};
</script>