应该是 iOS 系统的一个问题。 考虑把 opacity 改到父节点上?
opacityopacity值改变后,例如用setData()改变,background的呈现有问题。 当背景为图片时(background-image), 每一次opacity改变,会重新加载该背景,造成卡顿、闪烁的体验。 安卓与开发者工具上均无此问题,opacity改变都是平滑过渡。
2019-05-10没有完全明白你的问题。不过普通的自定义组件是不需要在 pages 中添加的(除非自定义组件本身被用作页面)。
自定义组件不在pages中添加路由会报错[图片] usingComponents已经配置页面,高版本基础库可以正常使用。如果低版本库中不在app.json的pages中添加路由,就会报这种错。所以想确定下,自定义组件需要不需要在pages中添加。现在我们线上用户有白屏问题,因为首页就用的自定义组件,我调低基础库,确实报错会出现白屏,所以怀疑线上是这个问题引起的。请官方确认下需不需要在app.json的pages中添加,会不会影响线上白屏。我添加之后会不会引起其他问题???
2019-05-09在 2.6.2+ ,我们会尝试提前为下一个页面创建一个 tabBar 实例,以便打开下一个页面能更快显示出 tabBar ,所以你会看到一个 tabBar 实例被创建,并且它的 WebviewId 是新的,过了很久之后页面才被创建出来。
自定义TabBar在基础库v2.6.2+的生命周期attached重复执行customBar代码在基础库2.6.1和2.5.0版本下运行,进入页面时先执行的customBar的生命周期函数attached,并打印了TarBar前缀的日志,然后在页面onShow函数中打印了进入某某页面日志,此时两个函数获取的当前页的WebViewId和TabBar的ExparserNodeId相同 [图片] 然而把基础库改为2.6.2+以后,BUG来了,注意时间戳,进入页面时执行customBar的attached函数和页面的onShow函数后,再次执行了customBar的attached函数,结果就是当前页的customBar显示的是上一次渲染的数据 [图片] 代码用的是你们官网提供的自定义tabbar示例代码:https://developers.weixin.qq.com/s/jiSARvmF7i55 custom-tab-bar.js [代码]lifetimes: {[代码][代码] [代码][代码]attached() {[代码][代码] [代码][代码]var[代码] [代码]curr = app.globalData.curr;[代码][代码] [代码][代码]if[代码] [代码](curr !== undefined) {[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]list: [代码][代码]this[代码][代码].data.tabs[curr][代码][代码] [代码][代码]});[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]var[代码] [代码]webViewId = [代码][代码]'WebViewId: '[代码] [代码]+ [代码][代码]this[代码][代码].__wxWebviewId__;[代码][代码] [代码][代码]var[代码] [代码]nxparserNodeId = [代码][代码]'ExparserNodeId: '[代码] [代码]+ [代码][代码]this[代码][代码].__wxExparserNodeId__;[代码][代码] [代码][代码]var[代码] [代码]route = [代码][代码]''[代码][代码];[代码][代码] [代码][代码]var[代码] [代码]pages = getCurrentPages();[代码][代码] [代码][代码]if[代码] [代码](pages.length) {[代码][代码] [代码][代码]route = pages[pages.length - 1].route;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]var[代码] [代码]data = JSON.stringify([代码][代码]this[代码][代码].data.list);[代码][代码] [代码][代码]console.log(Date.now(), [代码][代码]'TabBar'[代码][代码], webViewId, nxparserNodeId); [代码][代码]//, route, data);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码] 角色1首页.js [代码]onShow: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]var[代码] [代码]webViewId = [代码][代码]'WebViewId: '[代码] [代码]+ [代码][代码]this[代码][代码].__wxWebviewId__;[代码][代码] [代码][代码]var[代码] [代码]nxparserNodeId = [代码][代码]'ExparserNodeId: '[代码] [代码]+ [代码][代码]this[代码][代码].getTabBar().__wxExparserNodeId__;[代码][代码] [代码][代码]var[代码] [代码]route = [代码][代码]this[代码][代码].route;[代码][代码] [代码][代码]var[代码] [代码]data = JSON.stringify([代码][代码]this[代码][代码].getTabBar().data.list);[代码][代码] [代码][代码]console.log(Date.now(), [代码][代码]'进入角色1首页'[代码][代码], webViewId, nxparserNodeId); [代码][代码]//, route, data);[代码][代码] [代码][代码]console.log([代码][代码]' '[代码][代码]);[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]this[代码][代码].getTabBar === [代码][代码]'function'[代码] [代码]&& [代码][代码]this[代码][代码].getTabBar()) {[代码][代码] [代码][代码]this[代码][代码].getTabBar().setData({[代码][代码] [代码][代码]selected: 0[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码] 角色2首页.js [代码]onShow: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]var[代码] [代码]webViewId = [代码][代码]'WebViewId: '[代码] [代码]+ [代码][代码]this[代码][代码].__wxWebviewId__;[代码][代码] [代码][代码]var[代码] [代码]nxparserNodeId = [代码][代码]'ExparserNodeId: '[代码] [代码]+ [代码][代码]this[代码][代码].getTabBar().__wxExparserNodeId__;[代码][代码] [代码][代码]var[代码] [代码]route = [代码][代码]this[代码][代码].route;[代码][代码] [代码][代码]var[代码] [代码]data = JSON.stringify([代码][代码]this[代码][代码].getTabBar().data.list);[代码][代码] [代码][代码]console.log(Date.now(), [代码][代码]'进入角色2首页'[代码][代码], webViewId, nxparserNodeId); [代码][代码]//, route, data);[代码][代码] [代码][代码]console.log([代码][代码]' '[代码][代码]);[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]this[代码][代码].getTabBar === [代码][代码]'function'[代码] [代码]&& [代码][代码]this[代码][代码].getTabBar()) {[代码][代码] [代码][代码]this[代码][代码].getTabBar().setData({[代码][代码] [代码][代码]selected: 0[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码] 个人页.js [代码]onShow: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]var[代码] [代码]webViewId = [代码][代码]'WebViewId: '[代码] [代码]+ [代码][代码]this[代码][代码].__wxWebviewId__;[代码][代码] [代码][代码]var[代码] [代码]nxparserNodeId = [代码][代码]'ExparserNodeId: '[代码] [代码]+ [代码][代码]this[代码][代码].getTabBar().__wxExparserNodeId__;[代码][代码] [代码][代码]var[代码] [代码]route = [代码][代码]this[代码][代码].route;[代码][代码] [代码][代码]var[代码] [代码]data = JSON.stringify([代码][代码]this[代码][代码].getTabBar().data.list);[代码][代码] [代码][代码]console.log(Date.now(), [代码][代码]'进入角色'[代码] [代码]+ ([代码][代码]this[代码][代码].data.isDriver ? 1 : 2) + [代码][代码]'个人页'[代码][代码], webViewId, nxparserNodeId); [代码][代码]//, route, data);[代码][代码] [代码][代码]console.log([代码][代码]' '[代码][代码]);[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]this[代码][代码].getTabBar === [代码][代码]'function'[代码] [代码]&& [代码][代码]this[代码][代码].getTabBar()) {[代码][代码] [代码][代码]this[代码][代码].getTabBar().setData({[代码][代码] [代码][代码]selected: [代码][代码]this[代码][代码].data.isDriver ? 1 : 2[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码]
2019-05-05普通的扫码预览有问题吗?
调试小程序,微信闪退,开发者工具无问题- 当前 Bug 的表现(可附上截图) 用真机调试小程序,总会报两个错误,无论android客户端还是ios客户端,都无法正常真机调试,真机预览的时候能正常进入到小程序里。但部分操作不正常,ios上的表现是请求不能发送成功或接收,android可以接收,但总是会导致微信无响应,然后闪退 webviewScriptError Framework inner error (expect FLOW_CREATE_NODE but get another) Error: Framework inner error (expect FLOW_CREATE_NODE but get another) webviewScriptError Cannot read property 'addListener' of undefined TypeError: Cannot read property 'addListener' of undefined - 预期表现 能正常真机调试,能按照预期的逻辑进行 - 复现路径 - 提供一个最简复现 Demo
2019-04-262.6.1 ~ 2.6.5 在 Component observers 有个 bug 。我们已经在 2.6.6 修复了。
Framework inner error- 当前 Bug 的表现(可附上截图) Framework inner error (expect FLOW_APPLY_PROPERTY but get another) [图片] 我在开发者工具上试着换了一下基础库,换到较低版本就不报错了,换到最新的基础库就会报错。希望团队能看看问题。 我实在给组件的属性赋值时抛出的异常。 我在页面上用了一个组件 A,给组件A的属性赋值,组件A里面包含组件 B,组件B 的属性是通过组件A的属性给赋值的。恰好这个时候抛出了异常。 这是在页面的代码块: [代码]<[代码][代码]block[代码] [代码]wx:for[代码][代码]=[代码][代码]"{{ comments }}"[代码] [代码]wx:key[代码][代码]=[代码][代码]"id"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]v-comment-item[代码][代码] [代码][代码]comment-id[代码][代码]=[代码][代码]"{{ item.id }}"[代码][代码] [代码][代码]content[代码][代码]=[代码][代码]"{{ item.content }}"[代码][代码] [代码][代码]created-at[代码][代码]=[代码][代码]"{{ item.created_at }}"[代码][代码] [代码][代码]openid[代码][代码]=[代码][代码]"{{ item.user.openid }}"[代码][代码] [代码][代码]nickname[代码][代码]=[代码][代码]"{{ item.user.nickname }}"[代码][代码] [代码][代码]avatar-url[代码][代码]=[代码][代码]"{{ item.user.avatar }}"[代码][代码] [代码][代码]/>[代码][代码]</[代码][代码]block[代码][代码]>[代码] 这是组件A的WXML代码: [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"container"[代码] [代码]wx:if[代码][代码]=[代码][代码]"{{ content }}"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'author-wrapper'[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]v-avatar[代码] [代码]radius[代码][代码]=[代码][代码]"50%"[代码] [代码]avatar[代码][代码]=[代码][代码]"{{ avatarUrl }}"[代码] [代码]/>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'nickname {{ nickname_is_chines ? "zh-cn" : "" }}'[代码][代码]>{{ nickname }}</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'time-wrapper'[代码][代码]>{{ createdAt }}</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'content-wrapper {{ content_is_chines ? "zh-cn" : "" }}'[代码][代码]>{{ content }}</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'action-wrapper'[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'action-item reply'[代码] [代码]bindtap[代码][代码]=[代码][代码]'onClickReply'[代码][代码]> خەت قالدۇرۇش </[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]'action-item delete'[代码] [代码]wx:if[代码][代码]=[代码][代码]"{{ hasAuthor }}"[代码] [代码]bindtap[代码][代码]=[代码][代码]'onClickDelete'[代码][代码]> ئۆچۈرۈش </[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码]刚好上面的组件里面还有一个组件B也就是用户头像的组件 v-avatar 在页面给组件A的属性avatar-url赋值的时候抛出异常了。其他属性都没有问题。
2019-04-22小程序的 overflow:scroll 和一些组件特性有冲突。请考虑使用 scroll-view 组件代替 overflow:scroll 。
父节点catch:touchmove后子节点无法正常滑动- 当前 Bug 的表现(可附上截图) 父节点catch:touchmove之后,子节点overflow:scroll有进度条却不能滑动。父节点去掉catch:touchmove,子节点滑动正常。 如图:有进度条,但是无法滑动 [图片] - 预期表现 父节点在冒泡阶段catch,应该不影响子节点表现。子节点应该可以正常滑动 - 场景问题 利用swiper当页面容器时,利用catch:touchmove阻止用户左右切换后,swiper内的内容都无法正常滑动,因为父节点swiper的catch操作。 - 提供一个最简复现 Demo https://developers.weixin.qq.com/s/Q2tHdImr7G7i
2019-04-18已经定位到问题。请暂时不要在页面和自定义 tabbar 内共享同一个组件,我们之后会修复。
webviewScriptError e.shift(...).apply- 当前 Bug 的表现(可附上截图) 真机上切换tabBar报错,导致页面无法渲染,处于空白状态。模拟器无报错。 [图片] - 复现路径 点击下方tabBar可复现。
2019-04-17:host(...) 的写法现在有 bug (即使是使用 class )。所以现在并不推荐这么做。 不过你的建议看起来还不错。我们之后会考虑支持。
自定义组件样式:host()使用标签会被过滤的问题目前自定义组件可以使用:host(.test)给具有.test类名的组件设置样式; 开发者工具调试发现:host(.test)会被编译为类似.test[is="components/ui-button/ui-button"]的选择器。 [图片] 可当我尝试使用标签,而非类名时,如:host(ui-button);发现编译时会过滤掉括号以及其中的内容,选择器会变成:host; 我知道为了避免污染自定义组件中禁止了标签选择器,可:host(ui-button)若是被编译成ui-button[is="components/ui-button/ui-button"],应该是不会存在污染问题的;希望使用:host(ui-button)这种写法时不再过滤括号及其中内容。 如果支持这种写法,可以根据usingComponents中定义的组件名,使用不同的样式,而不需要再写class,使用起来会方便许多。
2019-04-10请确认你所使用的小程序已经申请使用这个插件并获得插件开发者通过,并且确认已经用这个小程序的开发者账号登录到开发者工具上。
求解决~小程序插件接入步骤进行出现以下错误,怎么解决- 当前 Bug 的表现(可附上截图) 如下图所示: [图片] - 预期表现 无错误并且上传成功 - 复现路径 无 - 提供一个最简复现 Demo
2019-04-09问题已复现,我们会尽快进行修复。
用户功能页args参数不起效求解答!!! 为什么插件的用户功能页args参数不起效, 我设置了不带登录态信息和语言设置为简体中文! 可是 ”允许授权“ 之后,返回的还是有 “登录态信息” 和 “地址信息为英文”???[代码][代码] <functional-page-navigator name="loginAndGetUserInfo" args="{{ args }}" version="develop" bind:success="loginSuccess" bind:fail="loginFail" > <button class="login">登录到插件</button> </functional-page-navigator> [代码] [代码] [代码]Component({[代码] [代码] [代码][代码]properties: {},[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]args: {[代码][代码] [代码][代码]withCredentials: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]lang: [代码][代码]'zh_CN'[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码][代码] [代码][代码]methods: {[代码][代码] [代码][代码]loginSuccess(res) {[代码][代码] [代码][代码]console.log(res.detail)[代码][代码] [代码][代码]},[代码][代码] [代码][代码]loginFail(res) {[代码][代码] [代码][代码]console.log(res)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]})[代码] [图片] [图片]
2019-04-08