[vuex] unknown action type: fetchEmails dispatch @ vuex.esm.js:497
时间: 2023-08-20 15:08:52 浏览: 172
出现 `[vuex] unknown action type: fetchEmails` 错误的原因是 Vuex store 中没有定义名为 `fetchEmails` 的 action。
请确保在 Vuex store 的 `actions` 中定义了 `fetchEmails` action,并且在组件中使用 `$store.dispatch('fetchEmails')` 触发该 action。
下面是一个示例代码:
```javascript
// store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
emails: [] // 邮件列表
},
mutations: {
setEmails(state, emails) {
state.emails = emails
}
},
actions: {
fetchEmails({ commit }) {
// 模拟异步请求获取邮件列表数据
setTimeout(() => {
const emails = [
{ id: 1, subject: 'Hello', content: 'This is a test email.', sender: 'sender@example.com', date: '2022-01-01' },
// 其他邮件...
]
commit('setEmails', emails)
}, 1000)
}
}
})
```
确保在组件中使用了 `$store.dispatch('fetchEmails')` 来触发 `fetchEmails` action:
```html
<template>
<div>
<!-- ... -->
<button @click="fetchEmails">获取邮件</button>
</div>
</template>
<script>
export default {
methods: {
fetchEmails() {
this.$store.dispatch('fetchEmails')
}
}
}
</script>
```
请检查以上代码,确保 `fetchEmails` action 在 Vuex store 中正确定义,并且在组件中正确触发。如果问题仍然存在,请提供更多相关代码以供我进一步检查。
阅读全文