如何在nuxtjs中映射子状态

时间:2019-12-20 08:31:30

标签: javascript vue.js vuex nuxt.js

我已经创建了状态〜/ store / modules / general / index.js

get_info get_pages 操作,

说明信息页面

当我使用

...mapActions({
getInfo: 'modules/general/get_info'
getPages: 'modules/general/get_pages'
})

很好, 但是当我尝试通过

访问它时
...mapState({
Info: 'modules/general/info'
Pages: 'modules/general/pages'
})

返回未定义

当我使用

...mapState({
modules: 'modules'
})

这将返回我所有的子状态,请帮助

2 个答案:

答案 0 :(得分:2)

尝试为两个信息(页面状态之类)两次映射状态。

computed: {
    ...mapState('modules/general/info', ['get_info']),
    ...mapState('modules/general/pages', ['get_pages']) 
}

另一种映射状态的方式,

computed: {
  ...mapState('modules/general', {
    info: state => state.info,
    pages: state => state.pages
  })
},

引用Binding-helpers-with-namespace

答案 1 :(得分:0)

以下代码应该可以帮助您仅获取实际所需的状态,而不是商店中的所有状态。

通过这种方法,这意味着您应该已经将store附加到Vue,但是我想您已经从显示的代码中获得了

您可能需要将'general''modules/general'交换

computed: {
  ...mapState('general', {
    info: state => state.info
  })
}