公众号用的vue2写的,我在加载完页面时写了以下的代码:
mounted() {
this.start()
console.log("高度")
console.log(this.$refs)
console.log(this.$refs.imgHeight)
},
this.$refs下面有imgHeight,但是this.$refs.imgHeight是underfined这是为什么??用的“微信开发者工具”看的。
公众号用的vue2写的,我在加载完页面时写了以下的代码:
mounted() {
this.start()
console.log("高度")
console.log(this.$refs)
console.log(this.$refs.imgHeight)
},
this.$refs下面有imgHeight,但是this.$refs.imgHeight是underfined这是为什么??用的“微信开发者工具”看的。
检查一下渲染时机,很可能是异步数据渲染的 imgHeight
元素,所以在 mounted
时输出并不会有这个元素。
需要等到你的数据请求完毕,页面渲染完成之后再尝试使用 this.$refs
获取元素。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
首先,建议贴下页面结构代码或完整案例【不涉及核心代码的前提下】
其次,可以使用排除法,将$ref内的元素注释后,单独赋值minHeight属性,单独查看,排除其他元素的影响。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
最好贴出相关代码,但看着输出有很多可能,另外最大可能就是 imgList 是通过接口返回之后在渲染的,而此时组件的 mounted 先执行了,自然获取不到值。
至于打印出来能看到有值是因为它是 js 里面的引用类型,即便是接口异步赋值的,也可以关联到原始对象上,即你早前的打印属于可见但不可用。
可以在请求数据之后,在通过 nextTick 的方式来访问就可以了。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
2 回答741 阅读✓ 已解决
1 回答663 阅读✓ 已解决
1 回答784 阅读✓ 已解决
1 回答739 阅读✓ 已解决
2 回答1k 阅读
828 阅读
946 阅读
ref使用.拿不到值可以使用[]试一下:
this.$refs['imgHeight']