- 【BUG】margin-bottom不显示
页面最后一个元素load-more的margin-bottom不显示 系统:iOS 11.2.6 iPhone 5S 如下,load-more为一个组件,是page的最后一个元素: [代码]load-more {[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]65%[代码][代码];[代码][代码] [代码][代码]margin[代码][代码]: [代码][代码]1.5em[代码] [代码]auto[代码][代码];[代码][代码] [代码][代码]line-height[代码][代码]: [代码][代码]1.6em[代码][代码];[代码][代码] [代码][代码]font-size[代码][代码]: [代码][代码]14px[代码][代码];[代码][代码] [代码][代码]text-align[代码][代码]: [代码][代码]center[代码][代码];[代码][代码]}[代码][代码]<[代码][代码]view[代码] [代码]wx:if[代码][代码]=[代码][代码]"{{status == 'loading'}}"[代码] [代码]class[代码][代码]=[代码][代码]"load-more"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"load-more__loading"[代码][代码]>[代码]view[代码][代码]>[代码][代码][代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"load-more__text"[代码][代码]>{{loadingText}}[代码]view[代码][代码]>[代码][代码][代码][代码][代码][代码][代码]view[代码][代码]>[代码][代码][代码][代码][代码][代码][代码]<[代码][代码]view[代码] [代码]wx:if[代码][代码]=[代码][代码]"{{status == 'nomore'}}"[代码] [代码]class[代码][代码]=[代码][代码]"load-more load-more__line"[代码][代码]>[代码][代码][代码][代码][代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"load-more__text load-more__text--in-line"[代码][代码]>{{nomoreText}}[代码]view[代码][代码]>[代码][代码][代码][代码][代码][代码][代码][代码]view[代码][代码]>[代码][代码][代码][代码] load-more的margin-bottom不会显示: [图片] 必须给page设置以下CSS才能解决: [代码]page {[代码][代码] [代码][代码]padding-bottom[代码][代码]:[代码][代码]1[代码][代码]rpx; [代码][代码]/* 解决 load-more 底部 margin 不显示的问题 */[代码][代码]}[代码] [图片]
2018-04-12 - 组件数据绑定文档 & 发现的一个bug
背景介绍 下面展示的截图是“图书详情”页,点击“相关图书”中的图片之后,还会跳转到这个页面,只是参数不同。 点击右下角“借阅此书”,会弹出一个 popup 组件,该组件的显示与否,由组件内部的 “show” 属性控制。 预期表现 进入“图书详情”页面后,点击“借阅此书”,显示 popup;跳转到下一个“图书详情”页后再返回当前页,popup 仍可正常显示。 Bug情况 在每一次进入“图书详情”页后,popup 都正常显示。 正常情况下,"show”为true时,应该显示popup( console 中的打印内容为 selecteComponent 获取到的该 popup 组件的引用): [图片] 但是当点击“相关图书”中的图书链接之后跳转到新的页面再返回,popup 不再显示,即使此时该组件的“show”属性值为true: [图片] 复现路径 点击“相关图书”中的图书链接之后跳转到新的页面,再返回,再点击“借阅此书”,popup 不再显示 最简复现Demo /components/panel/index.wxml [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"popup {{ show ? 'popup--show' : '' }}"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"popup__mask"[代码] [代码]bindtap[代码][代码]=[代码][代码]"onTapMask"[代码] [代码]/>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"popup__container"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]slot[代码][代码]></[代码][代码]slot[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码]/components/panel/index.wxss: [代码].popup__mask {[代码][代码] [代码][代码]position[代码][代码]: [代码][代码]fixed[代码][代码];[代码][代码] [代码][代码]top[代码][代码]: [代码][代码]0[代码][代码];[代码][代码] [代码][代码]left[代码][代码]: [代码][代码]0[代码][代码];[代码][代码] [代码][代码]right[代码][代码]: [代码][代码]0[代码][代码];[代码][代码] [代码][代码]bottom[代码][代码]: [代码][代码]0[代码][代码];[代码][代码] [代码][代码]z-index[代码][代码]: [代码][代码]10[代码][代码];[代码][代码] [代码][代码]background[代码][代码]: rgba([代码][代码]0[代码][代码], [代码][代码]0[代码][代码], [代码][代码]0[代码][代码], [代码][代码]0.7[代码][代码]);[代码][代码] [代码][代码]display[代码][代码]: [代码][代码]none[代码][代码];[代码][代码]}[代码][代码].popup__container {[代码][代码] [代码][代码]position[代码][代码]: [代码][代码]fixed[代码][代码];[代码][代码] [代码][代码]bottom[代码][代码]: [代码][代码]0[代码][代码];[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]100%[代码][代码];[代码][代码] [代码][代码]/* width: 100vw; */[代码][代码] [代码][代码]background[代码][代码]: [代码][代码]white[代码][代码];[代码][代码] [代码][代码]transform: translateY([代码][代码]150%[代码][代码]);[代码][代码] [代码][代码]transition: [代码][代码]all[代码] [代码]0.4[代码][代码]s ease;[代码][代码] [代码][代码]z-index[代码][代码]: [代码][代码]11[代码][代码];[代码][代码]}[代码][代码].popup--[代码][代码]show[代码] [代码].popup__container {[代码][代码] [代码][代码]transform: translateY([代码][代码]0[代码][代码]);[代码][代码]}[代码][代码].popup--[代码][代码]show[代码] [代码].popup__mask {[代码][代码] [代码][代码]display[代码][代码]: [代码][代码]block[代码][代码];[代码][代码]}[代码]/components/panel/index.js: [代码]/**[代码][代码] [代码][代码]* 底部弹出菜单[代码][代码] [代码][代码]*/[代码][代码]Component({[代码][代码] [代码][代码]properties: {[代码][代码] [代码][代码]// 点击背景是否自动关闭,默认是[代码][代码] [代码][代码]tappableMask: {[代码][代码] [代码][代码]type: Boolean,[代码][代码] [代码][代码]value: [代码][代码]true[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]data: {[代码][代码] [代码][代码]show: [代码][代码]false[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]methods: {[代码][代码] [代码][代码]show: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]this[代码][代码].setData({ show: [代码][代码]true[代码] [代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]close: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]this[代码][代码].setData({ show: [代码][代码]false[代码] [代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]onTapMask: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]this[代码][代码].data.tappableMask) {[代码][代码] [代码][代码]this[代码][代码].close()[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]})[代码] /pages/book-detail/index.wxml: [代码]<[代码][代码]button[代码] [代码]type[代码][代码]=[代码][代码]"primary"[代码] [代码]bindtap[代码][代码]=[代码][代码]"onShowPopup"[代码][代码]>借阅此书</[代码][代码]button[代码][代码]>[代码][代码]<[代码][代码]popup[代码] [代码]id[代码][代码]=[代码][代码]"popup"[代码] [代码]>[代码][代码] [代码][代码]内容[代码][代码]</[代码][代码]popup[代码][代码]>[代码]/pages/book-detail/index.js: [代码]onShowPopup: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]var[代码] [代码]popup = [代码][代码]this[代码][代码].selectComponent([代码][代码]"#popup"[代码][代码])[代码][代码] [代码][代码]console.log(popup)[代码][代码] [代码][代码]popup.show()[代码][代码] [代码][代码]},[代码] 我的解决办法 将“show”作为组件的属性,由父组件控制: /components/panel/index.js: [代码]/**[代码][代码] [代码][代码]* 底部弹出菜单[代码][代码] [代码][代码]*/[代码][代码]Component({[代码][代码] [代码][代码]properties: {[代码][代码] [代码][代码]// 点击背景是否自动关闭,默认是[代码][代码] [代码][代码]tappableMask: {[代码][代码] [代码][代码]type: Boolean,[代码][代码] [代码][代码]value: [代码][代码]true[代码][代码] [代码][代码]},[代码][代码] [代码][代码]show: {[代码][代码] [代码][代码]type: Boolean,[代码][代码] [代码][代码]value: [代码][代码]false[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]methods: {[代码][代码] [代码][代码]close: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]this[代码][代码].setData({ show: [代码][代码]false[代码] [代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]onTapMask: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]this[代码][代码].data.tappableMask) {[代码][代码] [代码][代码]this[代码][代码].close()[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]})[代码] /pages/book-detail/index.wxml: [代码]<[代码][代码]button[代码] [代码]type[代码][代码]=[代码][代码]"primary"[代码] [代码]bindtap[代码][代码]=[代码][代码]"onShowPopup"[代码][代码]>借阅此书</[代码][代码]button[代码][代码]>[代码][代码]<[代码][代码]popup[代码] [代码]id[代码][代码]=[代码][代码]"popup"[代码] [代码]show[代码][代码]=[代码][代码]"{{isPopupShow}}"[代码] [代码]>[代码][代码] [代码][代码]内容[代码][代码]</[代码][代码]popup[代码][代码]>[代码] /pages/book-detail/index.js: [代码]Page({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]isPopupShow: [代码][代码]false[代码][代码] [代码][代码]}[代码][代码] [代码][代码]onShowPopup: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]this[代码][代码].setData({isPopupShow: [代码][代码]true[代码][代码]})[代码][代码] [代码][代码]}[代码][代码]})[代码] 但是会造成一个问题,就是在从新的图书详情页返回后,AppData窗口失效: [图片] 以上是我遇到的一个 bug,感谢解答。 另一个问题:组件的数据绑定的逻辑 当组件的属性是父组件的data中的一个属性时,组件properties中的这个属性,和父组件data中的那个属性的关系是什么?以下是困扰我的现象: 在上面我提供的解决方案中,子组件 popup 将 show 通过 setData 设为 false 时,父组件中的 isPopupShow 依然为 true,但此时 popup 组件不显示; 当父组件的 isPopupShow 为 true 时,再次在父组件中通过 setData 将 isPopupShow 设为 true(也就是说这个属性的值没有变),popup组件依然会显示。 在第二个情况里,既然 isPopupShow 的值没有变,那为什么子组件还会响应更新?这个逻辑到底是什么?双向绑定还是各自的作用域?
2018-04-02 - 新开发工具 取消报错时调试器自动弹出
如题 想要只开模拟器预览,可是每次调试器在报错时就自动弹出来。不是程序错误,而是加载图片失败。这个如何取消呢。
2017-08-31 - 安卓端hideLoading失效
今天再登录开发者社区才发现三个月前我就写了这个bug的草稿,后来以为自己解决了,就没发布,结果没想到今天又出现了。。。 代码如下: [代码]try[代码] [代码]{[代码][代码] [代码][代码]wx.showLoading({ title: [代码][代码]"检查登录状态"[代码][代码]});[代码][代码] [代码][代码]var[代码] [代码]value = wx.getStorageSync([代码][代码]'phone'[代码][代码])[代码][代码] [代码][代码]console.log(2);[代码][代码] [代码][代码]console.log(value); // 没有'phone',输出为空[代码][代码] [代码][代码]if[代码] [代码](value) {[代码][代码] [代码][代码]console.log(1);[代码][代码] [代码][代码]wx.hideLoading();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]console.log(3);[代码][代码] [代码][代码]wx.hideLoading();[代码][代码] [代码][代码]console.log(4);[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](e) {[代码][代码] [代码][代码]console.log(5);[代码][代码] [代码][代码]wx.hideLoading();[代码][代码] [代码][代码]}[代码] console输出如下: [图片] 可以看到,输出有3,4,但是loading还在。我换成了showToast和hideToast之后没有这个bug。
2017-08-21 - 小程序审核
管理员你们好,我上次的小程序审核没有通过,原因是: (1)小程序实际所提供的服务属于尚未开放的服务类目。 (2)书评涉及个人小程序未开放类目:文娱-资讯 我是一名学生,在参加中国软件杯大赛,赛题要求开发一个小程序,模拟图书馆借书平台的整个流程: http://www.cnsoftbei.com/bencandy.php?fid=148&aid=1532 上面的两个被拒绝的原因都是赛题里的要求,小程序中用到的所有数据均是后台模拟的数据,您在审核的时候可以发现所有数据都是一样的。所以就第一个被拒原因而言,这个小程序提供的并不是真正的服务,而是只提供了一个模拟的界面用来向评委演示。在微信小程序中查找“借阅伴侣”可以查到很多其他同学提交的通过审核的小程序,但是他们的小程序的功能与我的都很类似,而且他们的小程序也通过了审核。(如:Scream借阅伴侣管理端、安科实验室借阅伴侣、我爱借书、无微不至借阅等) 关于第二个被拒原因,我注册并认证了一个企业公众号,用该企业公众号提交了一个小程序。所以麻烦您重新审核一下,如果无法审核通过我就无法参加比赛了... 个人公众号所绑定的小程序appid:wx0eff868e8d0bef7f 企业公众号所绑定的小程序appid:wx5b8cfa452106035c
2017-07-06 - 小程序审核
前几天发布了小程序结果被驳回了,原因是不符合规范,首页打开报错。但实际上这个报错是我在程序中设置的对用户的提示,原因是因为你没有登录,无法获取相关信息,而不是因为程序出bug。如果程序有问题,怎么会用modal报错呢? 我已经将Modal改为了对用户更友好的提示,请您审核。 Appid: wx0eff868e8d0bef7f
2017-07-04 - 开发者工具中wx.scanCode返回fail
在开发者工具中使用wx.scanCode返回fail。代码没有改动,前天可以正常使用,昨天就不可以使用了。在微信中扫码可以得到返回结果,而开发者工具中一直失败。 开发者工具版本 0.17.171900 (0.17.171900)
2017-06-15