vue中dialog组件中我这样写为什么这样渲染不出

发布于 2022-09-12 22:05:21 字数 882 浏览 10 评论 0

难道是dialog在未显示状态,抓不到dom的问题吗?

//我拿到数据生成一个二维码
success: (res) => {
    let cxt = res
    let payCode
    if (cxt.status == 1) {
        payCode = cxt.data.code_url
        $('.qr_container').qrcode({
            render: "canvas",
            height: 264,
            width: 264,
            correctLevel: 0,
            text: payCode
        });
        setTimeout(() => {
            this.qrcode = true //dialog显示
        }, 300)
    } else {
        this.toast(cxt.detail)
    }
},



//这里不行
<el-dialog class="qrcode add-add" title="微信支付" :visible.sync="qrcode" width="370px" center>
    <div class="qr_container" style="margin:auto; position:relative;"></div>
</el-dialog>

//单独写在外面测试是可以的
<div class="qr_container" style="margin:auto; position:relative;height: 264PX;width: 264PX;border: 1px solid #000;"></div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

荒芜了季节 2022-09-19 22:05:21

是的,没显示dialog就是没有dom

も星光 2022-09-19 22:05:21

先设置

 this.qrcode = true

再等窗口dom渲染后进行qrcode方法 生成二维码。

北风几吹夏 2022-09-19 22:05:21

先显示弹框让其dom渲染,然后等待其渲染完成再生成qrcode插入

this.qrcode=true
this.$nextTick(()=>{
    // qrcode生成
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文