javascript - Vue.js - 如何反应性地将“多级嵌套”成员添加到对象
问题描述
我在一个 web 项目中使用 vue.js 版本 2。
我知道反应性对向对象添加新成员有一些限制。
也就是说,我正在处理一个相对复杂的数据对象,它具有大量嵌套成员、子对象数组等。
我现在使用计算属性来获取/设置特定组件中的一些成员,并且我正在使用 lodadh 获取/设置这些嵌套属性_.set
例如:_.set(myObj, 'GeneralData.Body[0].MainAddress.StreetNumber')
我的问题是,除了GeneralData
,其余部分都不存在,因此整个事情都不是反应性的。
如何在 vue.js 中实现这一点?我尝试使用$set
vue.js 提供的函数,但它创建了一个名为“GeneralData.Body[0].MainAddress.StreetNumber”(作为字符串)的嵌套属性,而不是作为 lodash 函数的对象树。
解决方案
您可以使用_.setWith
which 让您知道lodash
使用什么函数来创建道具。
因此,您的问题的解决方案将如下所示:
_.setWith(myObj, 'GeneralData.Body[0].MainAddress.StreetNumber', 'somevalue', function(nsValue, key, nsObject){
return Vue.set(nsObject, key, nsValue)
})
参考:
推荐阅读
- elasticsearch-5 - 如何删除elasticsearch中的任务文档?
- elasticsearch - 使用 Spark 更新 elasticsearch 文档
- javascript - 通过 JavaScript 增加计数,直到达到给定的值
- powerbi - Power Bi:刷新“发布到 Web”链接
- kibana - 无法使用 systemctl 启动 kibana.service
- python - 如何将字典作为位置参数而不是关键字参数传递
- swift - 快速崩溃日志
- postgresql - Postgres 不会在 docker 中初始化数据库
- video - 将两个视频文件连接到播放器中的单个视频
- arrays - 使用 node.js 和在轴中传递数组的 plotly 创建图形