首页 > 解决方案 > 不可靠的数据 Vuex

问题描述

我正在尝试使用 Vuex,但无法理解为什么我的数据不是预期值。

我想要做的是将getter的结果传递给突变提交,如下所示

// TEST PRINT: return value of getter
console.log(this.$store.getters.reservationsCurrentWeek);
        
switch (this.activeCalendar) {
  case 'week':
   // Commit with getter result
   this.$store.commit('setShownReservations', this.$store.getters.reservationsCurrentWeek);
   break;

第一次打印显示了预期的结果。但是,当我打印突变内部实际传递的值时,如下所示:

// TEST PRINT: return value of getter
console.log(this.getters.reservationsCurrentWeek);
      
// TEST PRINT: parameter passed to the mutation.
console.log(value);
      
state.shownReservations = value;

参数值不是 getter 返回的值(而是一些旧值)。当我直接在我的突变中访问 getter 时,它也会给出正确的值。我不明白为什么我不能将 getter 的结果作为参数传递给突变提交,以及为什么它会产生不可靠的值?

标签: vue.jsvuexstoregettermutation

解决方案


你想从哪里访问this.getters.reservationsCurrentWeek?如果您正在访问来自突变的吸气剂,并且吸气剂和突变放置在一个文件中,您可以使用

mutations: {
  YOUR_MUTATION(state, {data, getters}) {
    console.log(getters);
  }
}

然后访问吸气剂。或者如果它放在单独的文件中,则从另一个文件导入 getter。


推荐阅读