使用Vuex中的状态值更改吸气剂值

时间:2020-02-19 11:04:49

标签: vue.js vuejs2 vue-component vuex

我有这个吸气剂,它可以获取状态中一项的值:

boxdata: state => {
      return state.boxchart.data
    },

现在我有另一项状态可以用来更改getter的值

当前,我在安装组件时执行此操作,但似乎有时加载数据,但有时不加载:

computed: {
      ...mapGetters(["boxdata"]),
      ...mapState(['reference_fc'])
    },

mounted() {
 this.boxdata[0].chartOptions.series[0].data[0]=this.reference_fc.NSR.values
}

所以我想知道如何在首次加载组件时确保boxdata getter已经更新?

2 个答案:

答案 0 :(得分:1)

Vue无法检测到数组元素分配。 Caveats中对此进行了解释。

尝试以下方法:

this.$set(this.boxdata[0].chartOptions.series[0].data, 0, this.reference_fc.NSR.values)

答案 1 :(得分:0)

您不应使用getter对数据进行突变。您应该使用mutations

信件只能根据商店状态获取派生状态。 see here

在您的商店中:

mutations: {
  setBoxdata(state, value) {
     state.boxchart.data[0].chartOptions.series[0].data[0] = value;
  }
}

在您的组件中:

computed: {
  ...mapMutations("setBoxdata")
},
mounted() {
  this.setBoxData(this.reference_fc.NSR.values);
}