--问题之最初问题:刚开始一个页面引入了两个相同的Dialog组件,组件中包含人公共组件富文本编辑器,分别在新增与编辑Dialog组件中。如下图:
问题:当点击新增后再点击编辑按钮,或者顺序反过来就会报如下错误:
在网上搜索了之后,说需要在生命周期befordistroy中销毁富文本编辑器,但是我试了,没用。最后在看另一篇不相关的文章,在Dialog上添加v-if来控制对话框的显隐就解决了。不过之后我发现两个富文本传入了相同的id(因为我的富文本编辑器组件支持传id)
后面直接把id传不一样的值也可以解决上面的问题报错。我本以为问题就是在解决了之后就变得清晰了,结果就发现了个更离谱的问题。(◞‸◟ )——富文本生命周期错乱
dialog配置
<el-dialog
:title="title"
:visible.sync="dialogVisible"
width="50%"
destroy-on-close
@close="handleCloseClick"
>
1。问题现象:点击Dialog框关闭按钮后的中的富文本编辑器生命周期如下
超级离谱,这些console都是在点击关闭之后才一起执行,而且销毁之后还要去执行mounted,而我的mounted里又执行了富文本编辑器初始化,所以就离谱。 因此最后还是改成了
<el-dialog
v-if="dialogVisible"
:title="title"
:visible.sync="dialogVisible"
width="50%"
destroy-on-close
@close="handleCloseClick"
>
然后生命周期就正常了:
虽然解决了,但其实还是不太清楚里面的原因,只是在网上发现了网友也遇到过类似的问题及吐槽
在这里发出来,希望知道得更清楚的网友解释一下,同时记录一下工作中遇到的问题,加深印象。 有时候就是这样,我能让代码运行,但代码为什么这么运行,我不知道!!!