javascript - Vuex getter 返回 undefined

标签 javascript vue.js vuejs2 vue-component vuex

这是我的 store.js 代码:

export const store = new Vuex.Store({
    state: {
        staffID: '',
        count: 0,
    },
    getters:{
        getStaffID: state => {
            console.log("13 getStaffID: " + state.staffID)
            return state.staffID;
        }
    },
    mutations: {
        UPDATE_STAFFID: (state,value) => {
            state.staffID = value
            console.log("20 mutations: " + state.staffID)
        },
    },
    actions: {
        update_staffID: (context, payload) => {
            context.commit("UPDATE_STAFFID", payload)
        }
    }
  })

在我的组件中,有一个按钮会调用它:

this.$store.commit('UPDATE_STAFFID','miow')
console.log("store.getStaffID: " + this.$store.getStaffID);
console.log("store.staffID: " + this.$store.staffID);

生成的日志将显示:

20 mutations: miow
13 getStaffID: miow
store.getStaffID: undefined
store.staffID: undefined

这让我很困惑。从日志中,我可以得出结论:

  • 突变 UPDATE_STAFFID 运行正常
  • state.staffID inside getStaffID getter in store.js 将输出所需的值,即 miow
  • 但是上面 getter 的返回值会以某种方式返回 undefined
  • 尝试使用 this.$store.staffID 直接访问 staffID 值也会返回 undefined

为什么那些 undefined

最佳答案

你缺少 gettersstate 属性,所以添加它们:

 console.log("store.getStaffID: " + this.$store.getters.getStaffID);
 console.log("store.staffID: " + this.$store.state.staffID);

关于javascript - Vuex getter 返回 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53558648/

相关文章:

javascript - $location.path() 在 AngularJS 中不起作用

javascript - pwa - 提示添加到主屏幕不显示

TypeScript 路径别名 - 如何修复导入错误

javascript - 在 Vue.js 中为选择元素设置 'selected' 选项

css - 如何根据sass中的选择器更改变量

javascript - 在nodejs应用程序中读取res.json

javascript - 如何使用 queryString 或任何其他方法解析 url 参数

javascript - 在此示例中,如何使用 vue.js 在 for 循环中设置标题?

javascript - Vue路由器从默认 View 返回时清除历史记录API?

javascript - vue : A method that is triggered on selection of a year