Ну, давайте попробуем погадать на кофейной гуще.
Итак, есть некий компонент, при изменении одного из параметров в data которого нужно выполнять Vuex action, который, в свою очередь, должен установить некоторые параметры для другого/других компонетов.
Изменения логично отслеживать (сюрприз!) в watch:
export default {
props: {
paramType: {
type: String
},
productId: {
type: Number
}
},
data () {
return {
param: 123
}
},
watch: {
param (value) {
this.$store.dispatch('calcPriceAction', { productId: this.productId, paramType: this.paramType, value })
}
}
}
Код экшна calcPriceAction мне сложно представить, но, НАВЕРНОЕ, что-то вроде
calcPriceAction (context, { productId, paramType, value }) {
const productApiService = context.getters.productApiService
return productApiService.getPriceFor(productId, paramType, value)
.then(price => {
context.commit('setProductPrice', { productId, price })
})
}
Пользователь меняет значение параметра
-> экшн запрашивает цену по обновлённому значению параметра,
-> обновляет состояние