使用this.$refs[this.letter]取到结果为undefined

来源:8-6 Vue项目城市选择页 - 兄弟组件数据传递

DenGe1

2019-02-04

老师您好,请问一下点击右侧滑动字母时,letter监听方法中,letter值可以取到,但是通过this.$refs[this.letter]取DOM对象时结果为undefined时什么原因呢?

console.log(this.letter)
console.log(this.$refs)
console.log(this.$refs[this.letter])
console.log(this.$refs.A)

以下结果时上面4行代码在浏览器中的执行结果
图片描述

写回答

1回答

DenGe1

提问者

2019-02-04

已经解决啦,右侧滑动字母li标签循环时换行,导致标签里字母前面有一个空格,所以在list.vue里取到的letter值其实是' A',而不是'A',所以无法通过$refs找到对应的DOM

0
2
慕粉7057323
回复
耿直的老铁
去掉空格就好了 watch:{ letter () { if (this.letter) { var e = this.letter.trim() var element = this.$refs[e][0] this.scroll.scrollToElement(element) } } }
2019-04-18
共2条回复

Vue2.5-2.6-3.0开发去哪儿网App 零基础入门到实战

课程紧跟Vue3版本迭代,企业主流版本Vue2+Vue3全掌握

10675 学习 · 8191 问题

查看课程