点击字母时不能滚动到相应字母的城市

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

qq_飘零的树叶_0

2020-12-13

代码和老师写的一致,还用了bus方法也是报错,具体报错:两种方法正常都进入,且城市字母已经拿到,比如“A”,但是执行const element = this.$refs[this.letter],element 打印结果是undefineconst element = this.$refs[this.letter][0],打印报错如图,如果写死const element = this.$refs[‘A’][0]是可以滚动的。

props: {
    hotCities: Array,
    cities: Object,
    letter: String  //已经拿到值
  },
  mounted () {
    const scroll = new BScroll(this.$refs.wrapper)
    // var this1 = this
    // this.bus.$on('change', function (str) {
    //   console.log(str)   //有值
    //   const element = this1.$refs[str][0]
    //   this.scroll.scrollToElement(element)
    // })
  },
  watch: {
    letter () {
      if (this.letter) {
	    console.log(this.letter)    //拿到值:比如‘A’
        const element = this.$refs[this.letter][0];
        console.log(element);
        this.scroll.scrollToElement(element)
      }
    }
  }

图片描述

写回答

1回答

Dell

2020-12-13

这说明this.letter没有值,继续往下分析,为什么this.letter 没有值,去找一下错误

0
4
Dell
回复
qq_飘零的树叶_0
打印一下this.$refs呢
2020-12-15
共4条回复

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

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

10675 学习 · 8191 问题

查看课程