支持的。但请注意, relations 只作用于引用该 behavior 的组件,路径也按组件计算,因而一般情况下不要使用在 behaviors 中使用相对路径指定目标。 如有疑问,请附上具体用例。
Behavior不支持relations配置,建议从文档中移除,不要误导开发者。https://developers.weixin.qq.com/miniprogram/dev/reference/api/Behavior.html
08-30反馈已收到。我们仔细分析下。
自定义组件没有被销毁,导致存在内存泄露的情况?Demo 地址 问题描述 自定义组件实例没有被销毁,如果给组件的 properties 传递了大量数据(Demo 中是 500k),将快速占用内存。 复现步骤 1.打开 Demo,然后打开开发者工具的 Memory 面板,录取内存快照,关注构造函数:l。 [图片] 2.点击 Click 按钮 10 次(相当于渲染、隐藏自定义组件 foo 5 次),然后点击强制垃圾回收按钮,接着再次录取内存快照。 3.选中快照 Snapshot2,filter 设置为:Objects allocated between Snapshot1 and Snapshot2,并筛选构造函数:l。这时可以观察到内存占用大幅上升,其中新增的 5 个对象 l 引用了 32% 的内存。 [图片] 4.展开其中一个 l 对象,可以观察到其 __methodCaller 属性引用的是一个自定义组件实例,从而判断 l 对象跟自定义组件有关。再观察 l 对象中内存占比较大的字段分别是 __vtObj 与 __innerData,它们都分别引用着父组件传入的 json 属性(500k 大数据)。( l 对象的 Retainers 是一些循环引用或内部代码,很难再往下追查) [图片] 5.右键点击 l 对象,选择 Store as a global variable,把 l 对象放到控制台进行观察,发现 __vtObj 与 __innerData 属性引用的是独立的 json 对象。 [图片] 6.综上,推测自定义组件实例没有被销毁,如果给自定义组件的 properties 传递了大型数据,会导致内存泄露问题更明显。 环境信息 基础库:2.32.2复现环境:微信开发者工具(真机调试不支持堆栈 snapshot)
2023-07-04光从描述不能确定具体是什么问题。 不过这里最容易遇到的问题是忘了发布插件所有者小程序。看看是不是忘了?
插件支付?在本地微信开发者工具中开发,或者直接用手机真机调试都可以调起支付,也都是可以找到miniprogram/functional-pages/request-payment.js(图一) 小程序的appid:wxd5246561b976e50d,也配置了(图二) 同时在app.json中配置了"functionalPages": { "independent": true }(图二) 本地也可以正常的直接调起支付(图三) 但是我讲插件发布上线之后,在小程序的体验版本中调用线上的插件支付,却报错找不到/functional-pages/request-payment.js,报错内容如(图四) [图片] [图片] [图片] [图片] {errMsg: "requestPluginPayment:fail callMiniProgramFunction:fail File not found"} 有没哪位大神能帮忙解决一下
2023-03-02感谢反馈。 bug 已确认,我们仔细查查看问题出在哪。
动态设置组件 components slot name 值,会导致已有的 slot 重复刷新渲染【BUG 描述】 使用 component slot 时,动态更新/设置 components 页面 slot 的 name 时,会导致已存在的 slot 重新刷新(目前复现的表现为存在滚动距离的 scroll-view 会返回顶部),无法做到局部更新。 【复现】 [图片] 点击代码片段中的“展示 slot_1”按钮;观察 slot_0 显示内容,表现为原本已存在滚动距离的 scroll-view 会返回顶部。【描述】 点击“展示 slot_1”按钮后,会调用 slotBug 组件内的 showSecondSlot(),此时会将 slotBug 中 data 的 【slot_1: ''】 设置为 【slot_1: 'second'】,wxml 中 <slot name="{{slot_1}}"></slot> 会同步由 '' 更新为 'second',此时会导致已存在滚动的 slot_0 scroll-view 返回顶部。
2022-12-09感谢反馈。 bug 已经确认。 但 iOS 系统的 bug 我们也没法处理,建议换种方式实现。( iOS 关于 transform 与其他部分 CSS 样式组合使用时的问题比较多,建议尽量绕开。)
animation中设置transform:rotate旋转超过180度后没有动画(ios)代码片段(注意使用iphoneX或者iphoneXR真机调试):https://developers.weixin.qq.com/s/wsPLPDmI7nDP 附上部分代码: @keyframes test { 0%{ transform: rotate(0); opacity: 0; } 100%{ transform:rotate(190deg); opacity: 1; } } 以上代码使用iPhoneX真机调试只有opacity动画是正常的,transform不会旋转。当去掉opacity后才能正常动画。 使用的iPhoneX系统为16.0、微信版本为8.0.29、基础库版本2.27.2
2022-11-10没有 parentUpdateProcessId 说明不是子更新。 如果想要得到一个子更新的 res 对象范例,可以写两个组件:父组件修改子组件的一个 property ,子组件在对应的 property observer 中直接调用 this.setData 。
setUpdatePerformanceListener方法子更新如何触发?setUpdatePerformanceListener方法中res回调没有parentUpdateProcessId参数,parentUpdateProcessId参数怎么样才能获取到? ?[图片] [图片]
2022-11-10由动画影响的样式始终优先于 setData 设置的样式。 这个设计主要是为了解决使用两种方式进行更新时产生的竞争。如果样式由动画影响,那只应使用动画来改变这些样式。
使用animation动画修改translateX之后style该属性失效程序片段:https://developers.weixin.qq.com/s/Eh46lumI76CC 复现步骤: 1、小幅度滑动图片(小于100px) 2、松开手指 3、图片自动回弹 4、回弹之后,再次拖动图片,修改translateX,图片不再跟随手指滑动
2022-09-23当分配给某个页面的显示区域尺寸发生变化的时候会触发这个页面的 onResize 。尺寸变化事件源于操作系统,在不同系统上有不同的表现是正常的。 wx.onWindowResize 是在小程序运行期间、只要显示区域尺寸有变化就会被触发的事件,不针对特定的页面。因而通过这个事件往往很难准确区分是哪个页面发生了尺寸变化,甚至在一些特殊情况下,是找不到哪个小程序页面发生了尺寸变化的(即触发 wx.onWindowResize 时不一定有 onResize 被触发)。
小程序启动时,iOS会触发onResize事件,安卓不触发,如何解决不对齐问题?[图片] [图片] iOS 首次启动小程序,页面渲染时会触发 onResize 函数,并携带页面相关参数,同时会触发wx.onWindowResize() 中监听的函数。Android 首次启动小程序,页面渲染时不会触发 onResize 函数,同时wx.onWindowResize() 中监听的函数也不触发,仅在页面尺寸变化时触发 onResize 函数及 wx.onWindowResize() 中的监听函数。wx.onWindowResize()与onResize的区别是啥,使用时应该选择哪一个?
2022-09-14非常感谢你的反馈! bug 已经确认,当同时满足以下条件时会触发 bug : 某个 generic 最终的实现组件不是一个有效的自定义组件;在 iOS 上打开小程序,且进入较深的页面层级后返回。如需规避,建议总是在 componentGenerics 中指定有效的 default 自定义组件。 我们会尽快修复这个 bug 。
发现 iOS navigateBack 某个白屏问题和抽象组件有关?我们商详页面有个推荐商品模块,支持重复进入其他商详,在几乎所有 iOS 机型上回退几次之后必定白屏,排查发现有个地方使用了自定义组件的抽象节点,但是没有在 json 文件里引入,注释掉这个代码后就恢复正常。 为避免其他代码干扰,跑了一个最简单的 demo 发现在 iOS 上也是必现的。控制台没有任何报错,请问是什么问题呢? 操作路径: 1、在 demo 里点击 button 跳转 10 层 [图片] 2、左侧滑动返回(或者调用 wx.navigateBack),大概在返回 4~5 次就必定会出现白屏,控制台没有报错 [图片]
2022-08-18感谢反馈!列表中有所遗漏,我们补一下。 关于 behavior 内 observers 的行为:类似于生命周期,同名 observers 不会相互覆盖;被同一个组件多次引用时,只会触发一次。
官方behavior文档完善[代码]“Behavior()[代码] 构造器提供了新的定义段 [代码]definitionFilter[代码] ,用于支持自定义组件扩展。 [代码]definitionFilter[代码] 是一个函数” 这段引自 https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/extend.html https://developers.weixin.qq.com/miniprogram/dev/reference/api/Behavior.html behavior定义文档却没有明确记录 另外对于behavior中定义observers的行为也同样没有记录,希望官方完善
2022-08-08