18910140161

子组件与父组件通过双向绑定修改父组件的值后,页面没有刷新

顺晟科技

2021-07-07 18:04:29

152

业务是这样的:希望通过子组件中的事件回调方式来修改父组件传入的props。通过使用emit(“update:xxx”)的方式能修改父组件的值,但是页面没有刷新,且子组件中的props依旧还是之前的值,有人遇到过这样的问题么,在线求教


顺晟科技:

请你确认一下在父组件调用子组件的地方,绑定props时是否加了sync修饰符,大概像这样

看到你提到了$emit(‘update:****’),猜想你是想使用sync props

搞不懂你在做什么。如果是联动的话,很简单,监听级的value即可。

<child-component :id.sync="someId"></child-component>

Select组件中的值(Options)随着另一个Select组件的选中值的改变而改变,就是所谓的多级联动。如果直接修改reactive类型的值,那么一级select的选中值总会在选择时失效,即选中值无法显示,所以我想的是通过双向绑定的方式方式触发子组件update,但是遇到了我刚才说的这个问题

如果不让的话,可以写一个函数,把props传递进去,就不会管你了。

vue2的话,数组的更新本来就须及时,需要使用Vue.set。vue3的话,基础类型的属性,使用emit提交即可。如果是引用类的(数组、对象)的话,父组件传递一个reactive进去,子组件里面直接读写属性即可,不需要使用emit来折腾了。

我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航