a***@sina.cn
a***@sina.cn
  • 发布:2019-03-04 12:06
  • 更新:2020-07-26 20:56
  • 阅读:9340

uni-app APP运行后 ref 为空,在浏览器中正常

分类:uni-app

<div class="scroller" ref="scroller">
123456
</div>


// 获取ref  
    getDom: function (name) {  
      let el = this.$refs[name];  
      if (typeof el === 'string' || typeof el === 'number' || typeof el === 'undefined') return el;  
      console.log(name+ ' = ' + JSON.stringify(el))  
      console.log(el instanceof HTMLElement)  
      console.log(typeof el.$el)  
      return el instanceof HTMLElement ? el : typeof el.$el === 'undefined' ? el : el.$el;  
    }  

// 输出  
          let sc = this.getDom('scroller');  
          console.log(sc.offsetHeight)  
          console.log(sc.clientHeight)  
// 直接用$refs也不行  
          sc = this.$refs.scroller  
          console.log(JSON.stringify(sc))  
          console.log(sc.offsetHeight)  
          console.log(sc.scrollHeight)  
          console.log(sc.clientHeight)

结果为:

// 获取ref
scroller = {} at ..
false at ..
undefined at ..

// 输出
undefined at ..
undefined at ..

// 直接用$refs也不行
{} at ..
undefined at ..
undefined at ..
undefined at ..

浏览器中正常!
请问如何才能在h5APP中获取到$refs.xxx?
我需要使用它的offsetHeight和scrollHeight
另外顺便问一下,有没有兼容度高的元素滚动方法?官方的uni.pageScrollTo 貌似只能滚动在页面级的,像上面这个this.$refs.scroller 就没用

2019-03-04 12:06 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

没有 DOM 这些东西,ref 的值在不同平台存在较大差异。
如果只是获取宽高,请参考:获取节点信息

  • comtom1

    请问在app里怎么获取子元素

    2019-12-08 22:23

堂吉诃德

堂吉诃德 - 自学是一门艺术

这个节点信息获取不知道什么时候官网可以改进下,获取的速度是真的慢

该问题目前已经被锁定, 无法添加新回复