- Skyline:在组件内使用runOnJS调用方法时this指向异常
在项目中想创建一个用于控制范围的流畅的双向slider组件,于是想利用horizontal-drag-gesture-handler手势组件来实现并封装成组件。在手势触发的'worklet'函数的最后使用wx.worklet.runOnJS来调用对应的方法修改数据。 onMaxDrag(e) { "worklet"; const { deltaX } = e; const deltaN = (deltaX / this._lineWidth.value) * (this._max.value - this._min.value); this._curMax.value += deltaN; if (this._curMax.value > this._max.value) this._curMax.value = this._max.value; if (this._curMax.value < this._curMin.value) this._curMax.value = this._curMin.value; runOnJS(this.setMaxNum)(this._curMax.value); }, setMaxNum(val) { console.log("--- 组件中 setMaxNum 中的this ---", this); this.setData({ curMaxNum: val }); }, 直接写在页面中能够得到预期结果,但是封装成组件却不能 实际场景如下图中,上方拖动条是在100-10000中选取范围(组件内),拖动两端小球UI能正常流畅变化,但是底部数值并未跟随变化。下方大球为写在页面中,拖动后能实时显示拖动距离。 [图片] 通过对比之后发现,写在页面中this指向正常,但写在组件this指向变为{},导致无法进行数据修改的操作。 [图片] 请问是runOnJS等等相关的worklet方法只能在页面中直接使用么?还是说我的使用方法存在问题?请大佬们解答一下
08-09 - Skyline: 全局配置中禁用A/B实验,在体验版中不生效,能保证在正式版中生效吗?
目前小程序的线上版本是webview页面,计划新增一个包含skyline页面的分包。 在分包中按页面粒度开启了skyline渲染模式: [图片] 并根据官方文档中的配置关闭A/B实验: [图片] 但在体验版中,从webview页面跳转到skyline页面时,仍然默认以webview运行。其中调试工具中的 渲染模式 选择Auto(即不强制切换Skyline,而是该页面自动选择渲染模式)。 [图片] [图片] 我了解通过调试工具强制切换Skyline会在进入Skyline页面时默认以Skyline模式运行,但是强切开关只在开发板和体验版中存在,请问我应该如何测试并保证在正式版本小程序中进入Skyline页面时是默认以Skyline渲染 的情况呢?
07-30 - Skyline: 使用open-container组件打开新页面时,新页面中image组件异常
复现操作路径: 使用open-container组件打开新页面,新页面中的image组件使用Skyline特有属性 fade-in 在加载完成时渐显但在实际使用时,将上述image组件放置于<scroll-view type="list"></ scroll-view>之中,如果元素过多使部分image组件超出一屏(或超出一定高度)或图片高度过大超出一屏(或超出一定高度)时,尽管图片资源已经加载完成,image组件仍然保持加载完成之前的状态(即图片不渲染在页面中)。在该场景下,如果不使用image组件的fade-in属性,则能正常显示
07-15 - Skyline:使用picker-view快速或大幅度上拉时,页面出现非预期现象
复现操作路径: 点击“年/月/日”任意一个输入框后,展示日期选择器弹框[图片][图片]以选择器中“年"一栏为例,先将此栏从2024(初始时年份)滑动至1960左右或更早(保证足够的上滑空间)拖动此栏(不松开)手指滑动至picker-view区域之外的位置再松开,会有很大概率出现非预期现象。非预期现象: 页面中picker-view的3列均可正常滑动,但页面内其他所有内容均无响应(弹出层组件左上角的"x" 、右上角的确认以及其他包括层级在picker-view之上的任何元素),需要通过右上角刷新重新进入小程序才能恢复正常。
07-15