首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何刷新计算属性

如何刷新计算属性
EN

Stack Overflow用户
提问于 2019-08-22 03:38:10
回答 1查看 375关注 0票数 0

对于后续问题,我想使用重新计算或其他方法。当我保存从someData呈现的项目时,更新的数据将被发送到服务器。我想刷新someData,这样我们就可以从服务器上看到更新的someData$recomputed('someData')不工作。

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

组件:

代码语言:javascript
复制
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

商店

代码语言:javascript
复制
const actions = {
  async pullData(commit){
  await ...// fetch data from apis and commit 
  }
}

const getters = {
  getData : state.data
}

也实现了变异。

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

代码语言:javascript
复制
data : { someData : [] },
mounted (){
  this.pullData();
  this.someData = this.getData()
}
EN

回答 1

Stack Overflow用户

发布于 2019-08-22 04:17:55

pullData是一个async操作,所以它已经返回了一个Promise。在从getData检索结果之前,您必须对其结果执行await操作

代码语言:javascript
复制
import { mapActions, mapGetters } from 'vuex'

export default {
  async mounted () {
    await this.pullData()
    this.someData = this.getData
  },
  computed: {
    ...mapGetters(['getData'])
  },
  methods: {
    ...mapActions(['pullData'])
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57598216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档