Я пытаюсь избежать следующего кода с Vuex.
//Product.js
const mutations = {
SET_PRODUCT_DATA(state, product) {
state.title = product.title
state.variantId = product.variantId
state.handle = product.handle
state.tags = product.tags
state.productType = product.productType
state.featureImage = product.featureImage
state.vendor = product.vendor
state.description = product.description
state.images = product.images
state.presentmentPrices = product.presentmentPrices
state.available = product.available
state.quantity = product.quantity
state.length = product.length
state.width = product.width
state.height = product.height
state.weight = product.weight
state.features = product.features
state.sizeMeta = product.sizeMeta
state.swatch = product.swatch
},
}
Однако, если я пытаюсь объединить объект состояния с моей полезной нагрузкой, это не сработает (я думаю, это связано с тем, как vue обрабатывает реактивность, но я еще не до конца это понимаю).
const mutations = {
SET_PRODUCT_DATA(state, product) {
state = { ...state, ...product} //doesn't work
},
}
Я также хочу избежать определения объекта в моем состоянии, такого как «данные», где я бы назначил эту полезную нагрузку. Это швы, как ненужное вложение.
const mutations = {
SET_PRODUCT_DATA(state, product) {
state.data = product //avoid ?
},
}