vuex获取state的问题

我用getter获取state的数据是undefined是怎么回事?
这是我的代码结构

clipboard.png

index.js

import Vue from 'vue'
import Vuex from 'vuex'
import mutations from './mutations'
import actions from './actions'
import getters from './getters'
Vue.use(Vuex)
const state = {
    totalTime: 0,
    list:[]
}
export default new Vuex.Store({
    state,
    mutations,
    getters,
    actions 
})

getters.js

export const totalTime = ({state}) => state.totalTime

在组件里获取通过this.$store.getters获取是的undefined
通过this.$store.state就能获取到
还有如果用...mapGetters会报unknown getter: totalTime
求大神看下!!

Sidebar.vue

<template>
      <h1 class="text-center">{{totalTime}} 小时</h1>
</template>
<script>
    import { mapGetters } from 'vuex';
    export default {
      name: 'Sidebar',
      computed: {
         /** 
        ...mapGetters({
             totalTime: 'totalTime'
        })**/
        
        time() {
            alert(this.$store.getters.totalTime)//undefined
            alert(this.$store.state.totalTime)//0
            return this.$store.getters.totalTime
        }
      }
    }
</script>
阅读 18.9k
3 个回答

用mapGetters这个方法就好了,看文档

<body>
    <h1 id="test" class="text-center">{{time}} 小时</h1>
</body>
<script src="../Js/vue.js"></script>
<script src="../Js/vuex.js"></script>
<script>
    const store = new Vuex.Store(
        {
            state:{
                totalTime: 0,
                list:[],    
            },
            getters: {
                totalTime:   state => {
                    return state.totalTime;
                }
            }
        }
    )   
    
</script>
<script>
    var a=new Vue({
      el:"#test",store,
      computed: {
         /** 
        ...mapGetters({
             totalTime: 'totalTime'
        })**/
        
        time() {
            alert(this.$store.getters.totalTime)//undefined
            alert(this.$store.state.totalTime)//0
            return this.$store.getters.totalTime
        }
      }
    })

</script>

改下getters部分就行了

直接 this.state名称 应该就能获取到

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题