微信小程序 setData、强制升级、监听网络

setData

  • 修改data中子对象的属性值, 使用 [key]
data:{
       user_info:{
           name: 'Rainy',
           age: 19
       }
   }
   
   // 修改name 为 Mis_chen, 不可能为了更改其中一个属性,把一个对象的全部属性都setData一遍!,如下方法
   
   let key = "user_info.name" ;
   this.setData({
       [key]: "Mis_chen"
   })

复制代码
  • 修改数组array 某个下标的子属性。类同之上,变量使用字符串拼接便可
data:{
       arr:[{ name: 'aa' }, { name: 'bb'}]
   }
   
   //修改 下标为1,name变为dd
   
   let index = 1; //测试用,通常为传入的参数
   let key = 'array' + '[' + index + '].name' ;
   this.setData({
       [key]: "dd"
   })
复制代码

强制升级

app.js
       /**
        * 强制升级
        */
       const updateManager = wx.getUpdateManager() ;
       updateManager.onCheckForUpdate(function (res) {
           // 请求完新版本信息的回调
           if (res.hasUpdate) {
               updateManager.onUpdateReady(function () {
                   wx.showModal({
                       title: '更新提示',
                       content: '新版本已经准备好,是否重启应用?',
                       success: function (res) {
                           if (res.confirm) {
                               // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                               updateManager.applyUpdate()
                           }
                       }
                   })
               })
               updateManager.onUpdateFailed(function () {
                   // 新的版本下载失败
                   wx.showModal({
                       title: '已经有新版本了哟~',
                       content: '新版本已经上线啦~,请您删除当前小程序,从新搜索打开哟~'
                   })
               })
           }
       })
复制代码

网络监听

app.js 
       /**
        * 初次加载,判断网络状态 
        */
       wx.getNetworkType({
           success: function(res) {
               let networkType = res.networkType ;
               if(networkType == "none"){
               that.globalData.isConnected = false ;
                   wx.showToast({
                       title: '当前无网络',
                       icon: 'loading',
                       duration:2000
                   })
               }
           },
       })
       /**
        * 监听网络状态,根据业务调整 
        */
       wx.onNetworkStatusChange(function(res){
           if(!res.isConnected){
               that.globalData.isConnected = false ;
                   wx.showToast({
                       title: '网络已断开',
                       icon: 'loading',
                       duration: 2000,
                       complete:function(){
                           //断开以后的业务逻辑
                       }
               })
           } else {
               that.globalData.isConnected = true ;
               wx.hideToast() ;
           }
       })
复制代码
相关文章
相关标签/搜索