【发布时间】:2021-07-23 08:23:04
【问题描述】:
在我的 Nuxt 页面中,我有一个导航组件,我尝试在其中实现类似
[徽标] [产品] [信息] [工作 (2)]
其中 (2) 是一个标志,表示相应“作业”内容文件夹中的项目数。 我试图填写该状态,但无法使其正常工作。我的状态是这样的:
export const state = () => ({
jobsLength: null,
})
export const mutations = {
setJobsLength(state, payload) {
state.jobsLength = payload.length
},
}
export const getters = {
getJobsLength(state) {
return state.jobsLength
},
}
export const actions = {
async fetch({ $content, commit }) {
const jobs = await $content('jobs').fetch()
commit('setJobsLength', jobs.length)
},
}
我的 Navigation.vue 组件:
<a href="/jobs">
Jobs {{ getJobsLength }}
</a>
....
<script>
import { mapGetters, mapMutations, mapActions } from 'vuex'
export default {
computed: {
...mapGetters({
getJobsLength: 'jobsLength/getJobsLength',
}),
},
mounted() {
this.fetchJobs()
},
methods: {
...mapActions({
fetchJobs: 'jobsLength/fetch',
}),
},
}
</script>
响应是
Uncaught (in promise) TypeError: $content is not a function
我觉得我错过了一些东西,但在代码中 2-3 小时后我就失明了。
【问题讨论】:
-
如果你
const jobs = await $content('jobs').fetch()然后job.length在你里面.vue组件会发生什么?没有 vuex,直接在你的组件中。 -
@kissu 我有多个地方/组件要使用该值(桌面导航、移动导航、页脚等),但在其他方面,我现在使用您的解决方案已经为价值构建了一个组件。
标签: fetch vue-component nuxt.js vuex nuxt-content