不是index.js存储文件中的mapGetters

时间:2019-02-25 14:27:13

标签: vue.js store vuex nuxt.js

例如,我想映射store/app.js文件中的吸气剂。我在此文件中有一个sidebar()吸气剂。在我的组件文件中,我调用:

export default {

  // ...

  computed: {
    ...mapGetters({
      sidebar: 'app/sidebar'
    }),

    // ...

    isCollapse() {
      return !this.sidebar.opened
    }
  }
}

但看起来不起作用,我收到了TypeError: Cannot read property 'opened' of undefined

store/app.js

// ...

export const state = () => ({
  sidebar: {
    opened: true
  }
})

export const mutations = {
  // ...
}

export const actions = {
  // ...
}

export const getters = {
  sidebar(state) {
    return state.sidebar
  }
}

1 个答案:

答案 0 :(得分:1)

我对nuxt不熟悉,所以这只是一个想法。

我没有发现您的设置有任何问题。粗略浏览https://nuxtjs.org/guide/vuex-store意味着可能需要一个store/index.js文件,而您没有提到。

如果这不起作用,建议将其添加到您的组件中以帮助调试:

created() {
  console.log(this.$store); // <-- this is the vuex store accessed by the component
}