你瞅啥呢

2022-05-16 Error in mounted hook: "Error: Initialize failed: invalid dom."

前言,项目中要用到echarts,需要获取到dom进行初始化,在获取dom这一步卡住了。

注:本项目大体框架用的是uniapp+vue,一个小程序项目。

vue版本:2.9.6 @vue/cli 4.5.12 npm版本:6.10.3 node版本:v12.10.0

举例:

复制代码
<template>
    <div ref="box"></div>
</template>

<script>
    export default {
        mounted() {
            console.log(this.$refs.box); // undefined
        }
    }
</script>

<style scoped>

</style>
复制代码

有网友建议放在this.$nextTick(() => {})里面打印

复制代码
<script>
    export default {
        mounted() {
            this.$nextTick(() => {
                console.log(this.$refs.box); // undefined
            });
        }
    }
</script>
复制代码

或者用定时器去延时打印

复制代码
<script>
    export default {
        mounted() {
            setTimeout(()=>{
                console.log(this.$refs.box); // undefined
            },5000)
        }
    }
</script>
复制代码

均为undefined

而且,我在非uniapp项目(vue搭建)中运行了该代码,是能够获取到的。

解决方案:使用uniapp的api来获取dom元素。

具体可看这里:https://www.gxlsystem.com/qianduan-4051.html

 

2022-10-27 在小程序中uniapp的ref只能用来获取子组件,且该子组件必须被引用。

posted @   叶乘风  阅读(2816)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示