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;
}