Skip to content

小程序开发遇到的坑 #3

@w3cmark

Description

@w3cmark

1、在 app.jsonShowonHidegetCurrentPages() 查询页面栈,可能获取到空数组

发现时间:20180517

系统环境:IOS

如果有在这两个场景使用,建议对当前页面对象进行判断是否为undefined

2、tabBar页面 wx.getSystemInfowindowHeight 小于实际高度(大约少了一个tabBar的距离)

发现时间:20180517

系统环境:android部分机

3、tabBar页面Page的onTabItemTap事件在首次切换不会触发,要在页面onShow后再切换才触发

发现时间:20180517

系统环境:iOS

sdk 1.9.97有问题、更新到2.0.7正常

4、button的border无法去掉?

小程序的open-typebutton特有的属性,所以使用小程序原生button组件在所难免,比如:

<button open-type="share" class="btn">
    点击分享
</button>

但是原生的button可能不太适合业务,所以需要去掉默认样式,比如去掉背景色和边框:

.btn {
    background-color: transparent;
    border: 0;
}

咦!意不意外?背景是去掉了,边框还在。。。
原来原生button的边框是写在 伪元素 after的,所以,需要这样才能去掉:

.btn::after {
    border: 0;
}

5、canvas.draw 回调一直不执行,也没报错(sdk在1.7.1以上都不可以)

前往社区类似问题反馈

如果你用了很多方式也排查不出原因,可以试下把绘画的canvas标签放到page页面级别的html,而不是放到自定义的组件html。貌似放到自定义组件,无法找到画布,导致绘画不成功(它没报错,但回调又不执行)。

回头看来官方api,原来createCanvasContext方法有第二个参数 Object this

在自定义组件下,当前组件实例的this,表示在这个自定义组件下查找拥有 canvas-id 的 ,如果省略则不在任何自定义组件内查找

6、在使用calc计算全面屏安全底部的时候,如果默认为0的也需要带上单位

错误示范

 .footer {
  padding-bottom: calc(0 + constant(safe-area-inset-bottom));  /* 兼容 iOS < 11.2 */
  padding-bottom: calc(0 + env(safe-area-inset-bottom));
}

正确示范

 .footer {
  padding-bottom: calc(0rpx + constant(safe-area-inset-bottom));  /* 兼容 iOS < 11.2 */
  padding-bottom: calc(0rpx + env(safe-area-inset-bottom));
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions