首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Vue.js中,当状态通过嵌套对象中的update发生变化时,网页不会更新?

在Vue.js中,当状态通过嵌套对象中的update发生变化时,网页不会更新?
EN

Stack Overflow用户
提问于 2020-04-01 09:35:07
回答 1查看 2.4K关注 0票数 1

在Vue.js中,有一些方法;Vue.set用于添加,Vue.delete用于删除,但是对于“update”,没有Vue方法,而是使用Object.assign。实际上,如果嵌套对象中没有任何更改,这是很好的。在Vue中是否有像update或refresh这样的函数,因为我在Chrome扩展选项卡中看到状态发生了变化,但是没有看到网页中的变化。

Vue视图不会为更新触发。

当我在“house”中添加一个项目时,我无法在页面上看到新的房子,甚至我可以在检查Vue,state上看到新的项目。当我重新加载页面时,我可以看到新的项目。

代码语言:javascript
复制
    "clients": {
    "oES4H0IMsYaCvGkSDKLmXkOkgXR2": {
        "CL_937fef22-cee7-4b14-9e4d-4e6751c82dab": {
            "name": "Adina Dowless",
            "email": "adinadowless@test.com",
            "phone": "(547) 515 53 91",
            "houses": {
                "0": {
                    "name": "sugarless",
                    "uavt": "832677187473",
                    "housePolicyId": "PO_7f12d27f-245b-41a6-92b4-dacb0256ccac",
                    "daskPolicyId": "PO_f5fba094-7272-41f8-a406-f9251df5a37f"
                },
                "1": {
                    "name": "intersexualism",
                    "uavt": "931095588844",
                    "housePolicyId": "PO_2d6b79d2-53a0-42f9-8445-df06c3b3bc5a",
                    "daskPolicyId": "PO_79f37178-0714-4c19-aa24-204ea3cf30e7"
                }
            }
        },
    }

编辑:我使用类星体框架,Vuex库和Firabase实时数据库。

因此,此客户端对象位于vuex存储区中,初始数据来自Firebase数据库。

当添加client:Vue.set(state.clients, payload.id, payload.client)时删除client:Vue.delete(state.clients, id)更新client:Object.assign(state.clients[payload.id], payload.updates)

这些功能在添加、删除或更新客户端一级属性(如名称或电子邮件)时工作正常。

当将新房子添加到房屋中时,将触发用于客户端的firebase数据库child_changed回调,并包含所有更新的数据,但网页中的组件不会更新。

EN

回答 1

Stack Overflow用户

发布于 2020-04-01 09:46:21

您不需要一种特殊的方法来进行更新。这就是Vue自己做的事情。但是Vue 只跟踪创建组件时存在的键

Vue不跟踪向现有对象添加新属性。

在向对象添加新属性时,需要使用Vue.set,以便Vue知道跟踪新属性。

因此,我认为您应该在Vue.set对象上使用house,或者使用Object.assign创建一个新对象。

附带注意:当houses作为一个数组可能更好的时候,您似乎使用它作为一个对象。如果将其更改为数组并使用Array.push,则Vue将跟踪更改。如果要在特定索引处将新项分配给数组,则应使用数组的Vue.set

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60967783

复制
相关文章

相似问题

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