<van-popup
id="popup"
overlay-class="header-overlay"
v-model:show="modal.visible"
@click-overlay="closeModal"
></van-popup>
modal
是通过props
传递过来的报错了,unexceped mutation of modal prop
这种怎么改?
export default defineComponent({
props: {
modal: Object
},
现在改成这种形式 changeShow
替换modal.visible
,这里set 会有问题,set
这里怎么改?
const changeShow = computed({
get() {
console.log('xxxxxxxxxxxxxxxxxxxxxx', props.modal, props.modal.visible)
return props.modal.visible
},
set(val) {
console.log('zzzzzzzzzzzzzzzz', val)
// props.modal.visible = val
this.$emit('update:[modal.visible]', val)
}
})
OP还是做一个最小demo吧,你要修改props下来的参数,是要用
emit
来提交事件给父级,但是同样的你要在父级接收修改props
的值,或者你在父级使用的时候不是通过v-bind
绑定,而是使用v-model
来处理。但是这些在你的代码示例中并没有体现出来。能看到的就是你在你的自定义子组件中给
van-popup
绑定了model.visible
,并没有看到你在父级是如何给当前的自定义组件绑定model
的。