computed属性中$refs为undefined不能更新数据

问题描述

页面需要动态计算table高度,在computed属性中使用了$refs但是无法得到一个可用的数据

问题分析

computed中 return一个常量时不会再触发数据双向绑定,一开始$refs无效,此时computed属性返回了一个常量值,所以后续不在触发。

问题解决

// 使用setTimeout在mounted中或者页面初始化方法中设置一个100ms时间差,调用获取高度的方法,保证$refs可用。
// 如果该computed属性有其他依赖,不直接返回一个常量的可以使用以下方法更细computed中的属性

data(){
        return {
            isMounted: false
        }
    },
    computed:{
        property(){
            if(!this.isMounted)
                return;
            //$refs is available
        }
    },
    mounted(){
        this.isMounted = true;
    }
posted @ 2021-06-22 19:37  小方块的世界  阅读(1622)  评论(0编辑  收藏  举报