微信小程序踩坑记录

微信小程序踩坑记录

1、app.json不定义路由也能跳转页面,且没有提示。添加编译模式会有提示: app.json 中未定义自定义编译中指定的启动页面
风险:如果是其他平台跳转过来,将会无法访问

2、page.data数据重复定义属性不会报错

// activeindex将会使用后面的
{
 activeindex:0,
 /** 搜索框 分页数据信息 start*/
 page: 1,
 pagesize: 10,
 totalPage: -1,
 inputVal: '',
 noData: false,
 searchBarShow: false,
 /** 搜索框 分页数据信息 end*/
 activeindex:1,
}

3、事件绑定了函数,但是函数未定义也不报错

// bindtapTest并未在逻辑js定义。然鹅不报错
<view>
<view class="title">横向steps</view>
<StepsRow bindtap="bindtapTest" items="{{['第一步','第二步','第三步']}}" activeindex="{{activeindex}}"></StepsRow>
</view>     

4、快速点击,navigateTo会新开多个窗口 解决方法:
1)、使用navigator组件
2)、使用锁🔒

let isNavTo = false

bindtapTest(){
    if(isNavTo){
     return false
    }
    wx.navigateTo({
      url: "/pages/logs/logs",
      complete(){
        isNavTo = true
      }
    })
  },
  onShow(){
    // 记得恢复false,以免回来后,换成页面导致点不了
    isNavTo = false
  }

5、有tabbar的页面,要使用wx.switchTab跳转,当navigateTo无法跳转可使用fail或者complete回调调试,一般是跳转方式不对或者是层级超过10级限制

6、css背景图片不能使用相对路径 常见解决方式:
1)、使用image图片
2)、使用base64位图片
3)、使用cdn或者云储存,当然也可以放在项目文件服务器,再使用绝对路径

7、webview里面的页面再跳转,如果是不同域名,也要加入业务域名审核

8、有可能出现数据更新,但视图没更新,使用wx.nextTick

9、小程序报错Uncaught (in promise) undefined原因 https://blog.csdn.net/weixin_43992330/article/details/103167736

10、picker组件第一次滑动不会触发bindcolumnchange,如果没有value

11、wxml数据绑定,在逻辑js里data未定义,不会报错。如果书写错误,将会造成调试困难

<!--定义了options,但并未定义option,不会提示语法错误-->
<view class="container {{option.type === 'detail' ? 'events_none' : ''}}">三元运算动态绑定class</view>

提示:因为小程序持续版本迭代,因此文中的问题有可能会在版本升级后就解决了。

🍕 如有错误,欢迎修正
🍕 遇到问题,记得多找社区:https://developers.weixin.qq.com/community/develop/mixflow

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注