Vuex 存储状态在控制台中未定义,但 Vue 工具显示工作正常
Vuex stores state is undefined in console, but Vue tool is showing that are working properly
我想在网络中显示我的 getter,但在 console.log 中我有未定义的错误。但是在 vue 开发工具中,我的 getter 正在工作。
我的组件代码:
export default {
data: () => ({
items: [
{ text: 'Real-Time', icon: 'mdi-clock' },
{ text: 'Audience', icon: 'mdi-account' },
{ text: 'Conversions', icon: 'mdi-flag' },
],
}),
computed: {
Question(){
return this.$store.getters.getQuest
}
},
methods: {
Next(){
this.$store.commit('incrementIndex')
}
},
}
这是我的 vuex :
export default new Vuex.Store({
state: {
question: [],
index: 0
},
getters: {
getQuest: state => {
let a = state.question[state.index]
let answer = [...a.incorrect_answers, a.correct_answer]
return {
question: a,
answer: answer
}
}
},
您收到未定义的错误,因为最初 question 是一个空数组。
所以 state.question[state.index] 基本上是 undefined
然后你试图访问 属性 incorrect_answers 的 undefined 这将不起作用并且会给出 undefined 错误
在getter中您需要检查是否所有信息都已加载。所以我大致会这样做:
export default new Vuex.Store({
state: {
question: [],
index: 0
},
getters: {
getQuest: state => {
let a = state.question[state.index]
if (a){
let answer = [...a.incorrect_answers, a.correct_answer]
return {
question: a,
answer: answer
}
} else {
return null
}
},
我想在网络中显示我的 getter,但在 console.log 中我有未定义的错误。但是在 vue 开发工具中,我的 getter 正在工作。
我的组件代码:
export default {
data: () => ({
items: [
{ text: 'Real-Time', icon: 'mdi-clock' },
{ text: 'Audience', icon: 'mdi-account' },
{ text: 'Conversions', icon: 'mdi-flag' },
],
}),
computed: {
Question(){
return this.$store.getters.getQuest
}
},
methods: {
Next(){
this.$store.commit('incrementIndex')
}
},
}
这是我的 vuex :
export default new Vuex.Store({
state: {
question: [],
index: 0
},
getters: {
getQuest: state => {
let a = state.question[state.index]
let answer = [...a.incorrect_answers, a.correct_answer]
return {
question: a,
answer: answer
}
}
},
您收到未定义的错误,因为最初 question 是一个空数组。 所以 state.question[state.index] 基本上是 undefined 然后你试图访问 属性 incorrect_answers 的 undefined 这将不起作用并且会给出 undefined 错误
在getter中您需要检查是否所有信息都已加载。所以我大致会这样做:
export default new Vuex.Store({
state: {
question: [],
index: 0
},
getters: {
getQuest: state => {
let a = state.question[state.index]
if (a){
let answer = [...a.incorrect_answers, a.correct_answer]
return {
question: a,
answer: answer
}
} else {
return null
}
},