Vue 3 computed 里面set 更新 props 传递过来的对象属性,怎么改?-灵析社区

CO_co

![6f2efc6d897f2146298d638a8e8d6e8.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241014/cd6f121ee4fe40ae89b32187dd85557a.png) `modal`是通过`props`传递过来的报错了,`unexceped mutation of modal prop` 这种怎么改? export default defineComponent({ props: { modal: Object }, 现在改成这种形式 `changeShow` 替换`modal.visible`,这里set 会有问题,`set`这里怎么改? ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241014/5336fa0e6992bd9369f85345efa2ac0c.png) 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) } })

阅读量:9

点赞量:0

问AI
OP还是做一个最小demo吧,你要修改props下来的参数,是要用 "emit" 来提交事件给父级,但是同样的你要在父级接收修改 "props" 的值,或者你在父级使用的时候不是通过 "v-bind" 绑定,而是使用 "v-model" 来处理。 但是这些在你的代码示例中并没有体现出来。能看到的就是你在你的自定义子组件中给 "van-popup" 绑定了 "model.visible",并没有看到你在父级是如何给当前的自定义组件绑定 "model" 的。