一句话总结:你必须在路由离开此页面前取消渲染其通过 teleport 挂载到外部节点的元素。写模态框时发现的,(模态框用v-if:“show”)我在 teleport 到 “#app” 的一个模态框里
顺晟科技
2021-07-01 18:00:20
434
写模态框时发现的,(模态框用v-if:“show”)我在 teleport 到 “#app” 的一个模态框里写了一个表单,表单提交成功就立即 router.push ,然后报错 DOMException
,网上找不到原因。最后发现走之前必须把 show=false
。
顺晟科技:
说明 teleport 的挂载逻辑上还是在原挂载节点。感觉 vue-router 可以在路由离开时自动关闭 teleport 子节点。
比如讨论的盖楼,本来可以设置后父讨论的ID,然后让每一层讨论自己去找即可。
必须先渲染出来层,然后才行挂下一层,然后再挂下下层。。。
我觉最坑的是,必须指定到一个已经渲染出来的dom上面,虚拟的还没渲染出来的不行。这样就太不方便了。
但是这时候父层还没有渲染出来,找不到目标。
还得确定有没有渲染出来。鸡肋呀。