<teleport v-if="teleportShow" to="#app-container">
<vAdd
v-if="addVisible"
:isEdit="isEdit"
v-model:open="addVisible"
:title="title"
:good-id="addId"
@back="infoBack"
/>
vAdd中的drawer组件 通过onMounted 无法回显
onMounted(() => {
if (props.int > -1) {
ruleForm.value = { ...props.markets };
labels.value = props.markets.labels;
ruleForm.value.labels = [];
}
});
原因:vAdd中的drawer组件 只在teleport显示时mounted一次,故form拿不到数据
解决办法
<vSell
ref="sell"
v-if="sellObj" //每次drawer打开时重新渲染
v-model:show="sellObj"
:markets="markets"
title="设置"
:int="int"
width="600px"
@close="close"
@set-sell="setSell"
/>
ruleForm.value = { ...props.markets };
//若写成ruleForm.value = props.markets ruleForm改变,父组件的markets 也会改变!!!