如何在微信小程序中实现自动更新?

第三方开发者的示例:

updateApp:function(){
    const updateManager = wx.getUpdateManager()
    updateManager.onCheckForUpdate(function (res) {
      // 请求完新版本信息的回调
      if (res.hasUpdate) {
        wx.showLoading({
          title:'更新下载中...',
        })
      }
    })
    updateManager.onUpdateReady(function () {
      wx.hideLoading();
      wx.showModal({
        title:'更新提示',
        content:'新版本已经准备好,是否重启应用?',
        success:function (res) {
          if (res.confirm) {
            // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate()
          }
        }
      })
 
    })
    updateManager.onUpdateFailed(function () {
      // 新的版本下载失败
      wx.hideLoading();
      wx.showToast({ title:'下载失败...', icon:"none" });
    })
  },

微信官方的示例:

// wx.getUpdateManager 在 1.9.90 才可用,请注意兼容
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
 // 请求完新版本信息的回调
 console.log(res.hasUpdate)
})
updateManager.onUpdateReady(function () {
 wx.showModal({
   title:'更新提示',
   content:'新版本已经准备好,是否马上重启小程序?',
   success:function (res) {
     if (res.confirm) {
       // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
       updateManager.applyUpdate()
     }
   }
 })
})
updateManager.onUpdateFailed(function () {
 // 新的版本下载失败
})

参考资料
https://developers.weixin.qq.com/community/develop/doc/000e2c0ca50a10233167de05c51800
https://developers.weixin.qq.com/community/develop/doc/000c2430d30b70251e86f0a0256c09

微信小程序wx:if不触发?

出现了几次这个Bug,都是类似下面的写法:

<button wx:if="userLogined" class="primary-button" ontap="confirmOrder">结算</button>

上面这个代码的问题,userLogined不是变量,而是字符串,这里的wx:if会始终为true的,要换成变量才可以,下面是正确的写法:

<button wx:if="{{userLogined}}" class="primary-button" ontap="confirmOrder">结算</button>

如何在微信小程序中修改data中属性的值?

虽然可以通过this.data.XX的形式读取到变量,但是不要用这种方式赋值,因为这种方式不会触发页面的渲染,正确姿势是用this.setData赋值。

this.setData({
  "categories": response.data.result
})

如果要修改数组中其中一个元素,则要在key的外面套一个中括号:

that.setData({
  ["categories[" + cIndex + "].foodsList[" + currentIndex + "].buyingAmount"]: originalAmount + 1
})