mpvue遇到问题

1. 项目中引入vant ui组件库,组件路径报错Component is not found in path "static/vantUi/button/index" (using by "pages......:

mpvue遇到问题_第1张图片

2. 引入tabBar图片时,将static前的../去掉;“static/images/home.png”

3. 路由跳转及带参/获取参数

// 跳转
const url = '../order-sure/main?type=1'
wx.navigateTo({
    url: url
})
// 获取参数
onLoad: function(option){
    this.active = option.type
}

4. 登录

wx.getUserInfo()不能弹授权框

  • 原因:某次小程序api的更新中,微信官方调整了这个方法的使用。根据微信官方解释,wx.getUserInfo()可以弹授权框是之前小程序框架不完善导致的bug,我们频繁的使用wx.getUserInfo()来调起授权框非常影响用户体验,违背了他们设计这个方法的初衷。
  • 解决:使用来调起微信授权。

5.授权

有时授权信息会解密失败

  • 原因:微信更改授权方式后,我们只能通过button来进行授权的弹窗,授权后通过回调来获取加密的数据,在这个回调中再调用wx.login()接口获取code时就会出现这个问题。通过button获取到的加密数据是上一次登录的session_key加密的,我们拿到加密数据后再进行wx.login()就会刷新登录状态,导致session_key改变,所以就会解密失败。
  • 解决:(1)在点击button的时候调用wx.login()方法。
    (2)如果是在回调中使用wx.login()方法,那么在wx.login()方法的回调中使用wx.getUserInfo()接口重新获取加密的数据。
  • // 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scope
    wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.record']) {
          wx.authorize({
            scope: 'scope.record',
            success () {
              // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
              wx.startRecord()
            }
          })
        }
      }
    })

6.交互

  • 下拉刷新时ios会出现页面瞬间向上弹出的bug

    • 原因:下拉刷新时请求了接口,接口使用了wx.showLoading()
    • 解决:请求接口时不要使用wx.showLoading()
  • wx.showToast()显示时间和设定时间不一致

    • 原因:一般是wx.showLoading()wx.showToast()连用导致的,wx.hideLoading()会同时把wx.showToast()也hide掉,虽然微信官方文档说wx.hideToast()wx.hideLoading()需要配对使用,但实际开发中发现两者可以随意使用。
  • 解决:使用wx.hideLoading()之后再使用wx.showToast()

7. 上拉加在更多事件

  • 页面自带事件:onReachBottom
  • scorll-view组件中事件:bindscrolltolower
  • scroll-view组件中的锚点事件:scroll-into-view:值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素

 

你可能感兴趣的:(微信小程序)