[Bug report] scroll-view: DOM and touch movement issues happened when lacking of width and height
问题描述
这不能完全算是一个BUG,但是的确体验不太好。
我在使用scroll-view时,没有注意到width和height props,直接使用后滑动页面时就会产生这些报错,有些情况下是由mpx-scroll-view抛出的,但有的时候是better-scroll抛出的。实际上width和height必须在CSS中指定给scroll-view,因为我在源码中注意到(line 263)通过refs获取到了容器和内容的宽高等样式。
如果这些样式最终是交由JS处理的,有没有可能通过props传入width和height两个rpx props?或者是否可以在scroll-view初始化时抛出一个宽高获取的提示和安全取值呢?依赖指定宽高是应该也是可以被理解的,但是现在的错误抛出方式容易被理解为是better-scroll出现了什么问题,而不是调用层面。
环境信息描述
至少包含以下部分:
- 系统类型(Mac或者Windows):Mac
- Mpx依赖版本(@mpxjs/core、@mpxjs/webpack-plugin和@mpxjs/api-proxy的具体版本,可以通过package-lock.json或者实际去node_modules当中查看):2.6.110,但我搜了release记录,这个问题在更新版本中应该依然存在
- 小程序开发者工具信息(小程序平台、开发者工具版本、基础库版本):仅H5环境
最简复现demo
一般来说通过文字和截图的描述我们很难定位到问题,为了帮助我们快速定位问题并修复,请按照以下指南编写并上传最简复现demo:
<scroll-view scroll-with-animation scroll-y scroll-into-view="1" > <view wx:for="{{30}}" wx:key="index" id="{{index}}" style=" flex: 0 0 100%; height: 10vw; background-color: #00bbff; margin-top: 1vw; display: flex; " > </view> </scroll-view>
mpx-scroll-view 抛出的错误,以及better-scroll抛出的报错,辛苦贴个图我们看下
暂时没有图了,可以用demo复现下
暂时没有图了,可以用demo复现下
感谢反馈 根据复现 demo ,排查到 mpx-scroll-view 抛出的报错,原因由于代码中 id 命名规则问题触发了浏览器报错,建议不要使用数字开头; 另外在未设置宽高的情况,可能触发 better-scroll 报错问题,目前已反馈给 better-scroll 团队处理,可见 https://github.com/ustbhuangyi/better-scroll/commit/6b2462ce1b5020e465a7424ce1afa9923319d0fa 后续框架会对 better-scroll 进行升级; 由于 web 组件基于微信 scroll-view 组件标准实现,目前暂时不考虑通过 props 传入 width 和 height 哈;