this.$nextTick无法获取到this.refs.xxx问题的解决
在做一个打印预览的功能时要通过循环添加要打印的二维码来预览
使用this.$nextTick无法获取更新后的dom,并且二维码在循环后生成也没有生成,因为先循环数组生成二维码的容器,然后再生成二维码。二维码容器的dom在循环后使用this.$nextTic没有获取到,所有二维码自然也生成不了。
最终使用定时器获取dom,二维码也渲染出来了
猜测是因为循环不是v-if那种立刻就会出发dom更新的条件,可能更新的事件在队里里面比nextTick的优先级低,所以使用this.$nextTick获取不到。
有大佬知道原因可以在评论区告诉小弟。
preview() { //打印预览 for (let i = 1; i <= this.prinForm.num; i++) { // this.createCode(this.row) this.previewList.push({ id: `qrcodepriview${i}` }) } // this.$nextTick(() => { const pretime = setTimeout(() => { console.log(this.$refs.previewList) for (let i = 1; i <= this.prinForm.num; i++) { this.createCode(this.codemsg, `qrcodepriview${i}`) } }) this.qrpreview = true // }) },
本文作者:SadicZhou
本文链接:https://www.cnblogs.com/SadicZhou/p/17244539.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步