无法读取 Vuex/Nuxt 中未定义的 属性 'name'
Cannot read property 'name' of undefined in Vuex/Nuxt
我正在尝试在 nuxt 中重构我的 vuex 以将我的操作、突变、getter 和状态分离到不同的文件中,但现在我遇到了错误;
store/template/state.js 文件像这样
export const state = () => ({
objective: {
active: true,
finished: false,
},
credence: {
active: false,
finished: false,
},
complete: {
active: false,
finished: false,
},
essentialScore: 50,
socialScore: 0,
governmentScore: 0,
addressScore: 0,
templateDetails: {
name: 'love',
services: [],
credence: {
essentials: {
firstname: 25,
lastname: 25,
},
socials: {},
governmentId: {},
address: {},
},
},
})
在我的组件中也是如此
templateName: {
get() {
return this.$store.state.template.templateDetails.name
},
set(value) {
return this.$store.dispatch('template/setTemplateName', value)
},
// },
},
store/template/action.js
export default {
setTemplateName({ commit }, payload) {
commit('SET_TEMPLATE_NAME', payload)
},
}
store/template/mutation.js
import Vue from 'vue'
export default {
SET_TEMPLATE_NAME(state, payload) {
state.templateDetails.name = payload
},
}
如果您选择将您的模块拆分成不同的文件(用于状态、突变等),您应该在每个文件中使用默认导出而不是 export const state
。
export default () => ({
templateDetails: {
name: 'love',
// ...
}
})
只有当您的商店模块只有一个文件时,您使用的语法才有用。
我正在尝试在 nuxt 中重构我的 vuex 以将我的操作、突变、getter 和状态分离到不同的文件中,但现在我遇到了错误;
store/template/state.js 文件像这样
export const state = () => ({
objective: {
active: true,
finished: false,
},
credence: {
active: false,
finished: false,
},
complete: {
active: false,
finished: false,
},
essentialScore: 50,
socialScore: 0,
governmentScore: 0,
addressScore: 0,
templateDetails: {
name: 'love',
services: [],
credence: {
essentials: {
firstname: 25,
lastname: 25,
},
socials: {},
governmentId: {},
address: {},
},
},
})
在我的组件中也是如此
templateName: {
get() {
return this.$store.state.template.templateDetails.name
},
set(value) {
return this.$store.dispatch('template/setTemplateName', value)
},
// },
},
store/template/action.js
export default {
setTemplateName({ commit }, payload) {
commit('SET_TEMPLATE_NAME', payload)
},
}
store/template/mutation.js
import Vue from 'vue'
export default {
SET_TEMPLATE_NAME(state, payload) {
state.templateDetails.name = payload
},
}
如果您选择将您的模块拆分成不同的文件(用于状态、突变等),您应该在每个文件中使用默认导出而不是 export const state
。
export default () => ({
templateDetails: {
name: 'love',
// ...
}
})
只有当您的商店模块只有一个文件时,您使用的语法才有用。