请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

代码和老师写的一致,还用了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)
      }
    }
  }

图片描述

正在回答 回答被采纳积分+3

1回答

Dell 2020-12-13 23:30:05

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

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_飘零的树叶_0 #1
    console.log(this.letter)是有值的
    回复 有任何疑惑可以回复我~ 2020-12-14 09:40:06
  • Dell 回复 提问者 qq_飘零的树叶_0 #2
    如果你用 this.$refs[this.letter] 这个写法,能使用吗
    回复 有任何疑惑可以回复我~ 2020-12-15 00:18:19
  • 提问者 qq_飘零的树叶_0 回复 Dell #3
    this.letter有值,但是this.$refs[this.letter] 就是undefined了
    回复 有任何疑惑可以回复我~ 2020-12-15 11:38:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信