首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能在VueJS/Vuex中调用命名空间getter呢?

为什么我不能在VueJS/Vuex中调用命名空间getter呢?
EN

Stack Overflow用户
提问于 2018-08-18 22:06:53
回答 1查看 674关注 0票数 3

我在控制台上得到了unknown getter: player/shuffle,但是经过一些研究之后,我找不到是什么原因造成了这种情况。

  • 我确保了我的getter和状态不是函数;
  • 我从'player/toggleShuffle'重命名为'toggleShuffle': 'player/toggleShuffle',以确保它被正确调用。

我觉得这个问题可能在商店里,但我需要一点帮助。

我的vue档案:

代码语言:javascript
复制
<template>
  <section>
    <sui-grid>
      <sui-grid-row>
        <sui-grid-column :width="3">
          <sui-button-group icons>
            <sui-button icon="fastBackward"/>
            <sui-button icon="play"/>
            <sui-button icon="fast-forward"/>
          </sui-button-group>
        </sui-grid-column>
        <sui-grid-column :width="10">
          ds
        </sui-grid-column>
        <sui-grid-column :width="3">
          <sui-button compact icon="shuffle" :toggle="shuffle" @click="toggleShuffle" />
          Debug: {{ shuffle }}
        </sui-grid-column>
      </sui-grid-row>
    </sui-grid>
  </section>
</template>

<script>
import { mapActions, mapGetters } from 'vuex'
export default {
  data () {
    return {
    }
  },
  methods: {
    ...mapActions({
      'toggleShuffle': 'player/toggleShuffle'
    })
  },
  computed: {
    ...mapGetters({
      'shuffle': 'player/shuffle'
    })
  }

}
</script>

我的商店/模块/player.js文件:

代码语言:javascript
复制
const state = {
  playState: 0, // 0: Stop, 1: Play, 2: Pause
  shuffle: false,
  repeatMode: 0, // 0: No repeat, 1: Repeat All, 2: Repeat this
  cTrackDuration: -1,
  cTrackPos: -1
}

const mutations = {
  STOP (state) {
    state.playState = 0
    state.cTrackPos = -1
  },
  PLAY (state) {
    state.playState = 0
    state.cTrackPos = -1
  },
  SHUFFLE (state) {
    state.shuffle = !state.shuffle
  }
}
const getters = {
  shuffle: state => {
    return state.shuffle
  }
}
const actions = {
  stop ({ commit }) {
    commit('STOP')
  },
  play ({ commit }) {
    commit('PLAY')
  },
  toggleShuffle ({ commit }) {
    commit('SHUFFLE')
  }
}

export default {
  namespaced: true,
  state,
  getters,
  mutations,
  actions
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-19 02:07:37

我认为你的语法不正确。您可以尝试将模块名称作为第一个参数传递给mapActionsmapGetters

代码语言:javascript
复制
methods: {
  ...mapActions('player', ['toggleShuffle'])
},
computed: {
  ...mapGetters('player', ['shuffle'])
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51912905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档