開(kāi)發(fā)過(guò)程中遇到需要使用el-dialog多層嵌套的問(wèn)題,導(dǎo)致第一層dialog中用v-if v-show渲染的元素?zé)o法正常顯示,先說(shuō)解決方法
<div v-if="giftboxlist">
<el-dialog title="選擇產(chǎn)品" width="40%" :show-close="false" :append-to-body="true":visible.sync="giftboxlist">
<div class="groupbox">
<div class="searchbox">
<el-form ref="form" :model="result" label-width="auto">
<el-row>
<el-col :span="8">
<el-form-item label="產(chǎn)品編碼">
<el-input v-model="result.code" class="width100" type="text" clearable />
</el-form-item>
...
</div>
</div>
</el-dialog>
</div>
在多層嵌套的dialog中包裹一層div
問(wèn)題的原因是因?yàn)樵赿ialog關(guān)閉時(shí)實(shí)際的DOM樹(shù)是沒(méi)有刪除對(duì)應(yīng)的DOM的,這樣就可能會(huì)導(dǎo)致第一層的元素在使用v-if或v-show時(shí)渲染出現(xiàn)問(wèn)題