vue子组件如何修改父组件中的对象的值?

发布于 2022-09-12 03:46:46 字数 311 浏览 13 评论 0

如题:在子组件child中只能this.$emit('updata:logo',res.data.file.file_path);这样修改父组件的值,那假设logo属性在父组件的form对象中呢?
this.$emit('updata:form.logo',res.data.file.file_path);这样子无效

请问该如何解决这种问题?
我目前有想到可以在父组件中写一个专门的赋值方法,子组件去调用并传入要修改的对象的key值,然后该父组件中的方法再去修改form对象中对应的key值。但是我还是想直接赋值,易读性更高

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

携君以终年 2022-09-19 03:46:46

这写法就是用来解耦的,在父组件对应绑定值上带.sync修饰符
:logo.sync="logo"
:logo.sync="form.logo"
绑定在父组件的哪个对象哪个属性上直接写就行,子组件内根本不需要关心


如果你要强耦合,写的子组件只给这个父组件用,直接

this.$parent.form.logo = xxxx

就行了,反正你看得懂

瑾兮 2022-09-19 03:46:46

可以参考问题 https://segmentfault.com/q/10... 中 @Raymond 的回答 ;

楠木可依 2022-09-19 03:46:46

其实 ... props 的数据在子级直接修改会导致父级数据的同步变更的
只是规范要求用不要直接改才多此一举的
注意!修改指 Object,你拿 String 当我没说

望喜 2022-09-19 03:46:46

你好 想问下这个问题你这边是怎么解决的呢,我也遇到了 但是还不知道怎么解决。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文