最近在做的项目有一个功能 需要在dialog弹出框输入用户的登录信息 于是乎遇到了一个丧心病狂的报错
找了各种搜索引擎 没有任何解决方案(ps:是用Vuetify的开发者太少了吗🤣)
功夫不负有心人 在不断的尝试下 最终还是解决了👍
问题描述
在弹出框第一次打开时 没有任何异常
然而问题来了 在第二次打开弹出框时 点击里面的文本框
立刻出现了Maximum call stack size exceeded
堆栈溢出异常
从而导致文本框完全没法输入 毫无用户体验!
当刷新页面后 又是如此循环:第一个打开弹出框完全正常 第二次开始就报堆栈溢出异常了
原因
我纳闷了 我的代码中明明没有任何递归调用
而在另一个组件里 我用的是同样的弹出框 没有任何异常
在该组件中 我用了两个一样的弹出框用于登录(弹出框内的逻辑有点复杂所以并没有抽离复用)
那么 是否是我用了两个弹出框导致的
由于dialog默认是用插槽控制开关的 :
<template v-slot:activator