如何刷新计算的属性

时间:2019-08-21 19:38:09

标签: api vue.js vuex computed-properties

我想使用重新计算的或其他方式处理后续问题。 当我保存从someData渲染的项目时,更新的数据将发送到服务器。 我想刷新someData,以便我们可以从服务器上看到更新后的someData$recomputed('someData')不起作用。

我认为我应该使用Promise,但不知道如何以及在哪里实现。 如果有人在这个问题上帮助我,我将不胜感激。感谢您的微小帮助。

组件:

computed : someData : function() { 
  return this.getData()// this is getters in the store 
}
mounted() {
  this.pullData() //this is actions for fetching data in the store, 
  this action commits fetched data to the state for getters

计算属性someData用于模板。 我要编辑并保存someData

商店

const actions = {
  async pullData(commit){
  await ...// fetch data from apis and commit 
  }
}

const getters = {
  getData : state.data
}

还实施了变异。

这不会渲染someData,我的意思是someData一旦渲染就为空 组件。

data : { someData : [] },
mounted (){
  this.pullData();
  this.someData = this.getData()
}

1 个答案:

答案 0 :(得分:0)

pullDataLocator Strategies动作,因此它已经返回了Promise。从getData检索结果之前,您必须先async

import { mapActions, mapGetters } from 'vuex'

export default {
  async mounted () {
    await this.pullData()
    this.someData = this.getData
  },
  computed: {
    ...mapGetters(['getData'])
  },
  methods: {
    ...mapActions(['pullData'])
  }
}