在NUXT中间件中未定义Vuex存储

JavaScript Vue.js

古一

2020-03-20

我正在练习NUXT,从教程中可以很好地学习。进入NUXT中间件时,我的失败。逻辑是如果页面将重定向到其他页面,它将进入中间件并使用axios获取结果。

中间件/search.js

import axios from 'axios';

export default function ({ params, store }) {
    console.log(store)

    return axios.get(`https://itunes.apple.com/search?term=~${params.id}&entity=album`)
        .then((response) => {
            console.log(response.data.results);
            store.commit('add', response.data.results)
        })
}

在这里输入时,store.commit('add'...将得到结果

无法读取未定义的属性“提交”

当我回显commit = undefined时。

我缺少什么?我已经尝试过this.$store.commit(...)仍然不确定。

威克斯

商店/index.js

import Vuex from 'vuex'

const createStore = () => {
  return new Vuex.Store({
    state: {
      albums: []
    },
    mutations: {
      add (state, payload) {
        state.albums = payload
      }
    }
  })
}

export default createStore

第2548篇《在NUXT中间件中未定义Vuex存储》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
JinJin逆天 2020.03.20

重新启动Dev Server也对我有用。进行更改后,似乎不会重新加载Vuex。

运行npm run dev,它应该工作。

西里Near 2020.03.20

我从上述教程的评论中找到了解决方案,但如果其他人也为此感到困惑,我想在这里分享。

停止开发服务器ctrl+C

然后重启你的开发服务器

npm run dev

那么VUEX现在将在中间件tnx中出现

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android