NUXT中间件中未定义Vuex存储

时间:2018-05-01 16:34:07

标签: javascript vue.js vuex nuxt.js

我正在练习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'

当我回显commit = undefined。

我缺少什么?我已经尝试this.$store.commit(...)仍未定义。

VUEX

商品/ index.js

import Vuex from 'vuex'

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

export default createStore

2 个答案:

答案 0 :(得分:7)

我从上述教程的评论中找到了一个解决方案,但如果其他人也在努力,我想在这里分享。

暂停您的开发服务器 ctrl + C

然后重新启动您的开发服务器

npm run dev

然后VUEX将出现在中间件tnx

答案 1 :(得分:3)

重启Dev Server也适合我。在进行更改时,似乎没有重新加载Vuex。

运行npm run dev,它应该有效。