为什么我state变化了但是getter没有跟着更新?

这是页面,在created的时候派发了一个action

created () {
    this.$store.dispatch('refreshMenuTree', this.common.userId)
},

action

refreshMenuTree ({commit}, payload) {
    commonApi.getUserMenu({
        userId: payload
    }).then(({data: {resultCode, result, msg}}) => {
        commit(types.SAVE_MENU_TREE, result)
    })
}

然后commit

[types.SAVE_MENU_TREE] (state, payload) {
    state.menuList = payload
}

然后state

const initState = {
    activeSubmenu: [],
    activeMenuIndex: '',
    showLastLogin: true,
    menuList: []
}
export default {
    state: {
        token: '',
        userId: '',
        username: '',
        ...initState,
        initState
    }
}

控制台里state数据也改变了,但是getter除了第一次state获取到数据之后渲染出来,之后state再更新数据getter都没发生改变,对了我所有的文件都是分模块放的,如图:
图片描述

控制台里能看出state和getter中的menuList不一样
图片描述

这是为啥?

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