Javascript 更改承诺回调中的vue数据

Javascript 更改承诺回调中的vue数据,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我正试图在promise回调中更改我的Vue数据, 由于某些原因,我看不到模板中的值更改 我看到了这个问题 我已经将这个更改为正确的,但是我仍然看不到模板中的值发生了变化 这是我的模板: <template> {{ sites }} </template> 知道为什么我的数据不会改变吗?我认为这是一个被动的问题。请试一试 .then(converted => { const sites = JSON.parse(JSON.stringify(_this.s

我正试图在promise回调中更改我的Vue数据, 由于某些原因,我看不到模板中的值更改

我看到了这个问题 我已经将
这个
更改为正确的,但是我仍然看不到模板中的值发生了变化

这是我的模板:

<template>
  {{ sites }}
</template>

知道为什么我的数据不会改变吗?

我认为这是一个被动的问题。请试一试

.then(converted => {
  const sites = JSON.parse(JSON.stringify(_this.sites))
  sites[site.id] = converted
  _this.sites = sites
}
更多说明:


为了更新页面,Vue进行了廉价的比较(据我所知,是参考比较)。若只更新对象的属性,它们仍然指向相同的引用->Vue将不更新页面。因此,我们需要对它们进行深度复制,以便进行比较

转换的内容是什么?它是一个异步函数,可以将所有firestore DocumentReference转换为JSON:您确定convert没有拒绝承诺吗(是
控制台.log(转换)
内部,然后
回调实际输出您期望的内容)?是,它确实……工作得很好,你能再解释一下这个主题吗,或者请参考一些文档?看一下。还有文档说明,您可以使用
Vue.$set
Array.prototype.splice
来检测更改。
.then(converted => {
  const sites = JSON.parse(JSON.stringify(_this.sites))
  sites[site.id] = converted
  _this.sites = sites
}