uniapp打包的安卓app用this.$route.query获取失败时的解决方案

今天在维护一个uniapp的时候,发现一个问题,就是h5开发环境和发布环境某个页面的数据都没有问题,但是打包成app后发现请求不到数据,没有发起网络请求,后来开启了真机调试发现了这个问题,原来是在app环境下载this.$route.query这样获取不了数据,会变成query未定义。


开始的代码(以前的逻辑是想挂载后就初始化参数的):

onLoad() {
  
 },
 mounted(){
    let query = this.$route.query;
    if (query.hasOwnProperty('order_sn')){
      this.order_sn = query.order_sn;
      this.type = query.type
      this.getData()
    } 
  },

上面的代码在h5环境没有任何问题,就是在打包的app环境有问题(或者真机调试也有问题)。

解决:调整到onload里面(懒人方式,就是把带过来的参数e赋值给query):

onLoad(e) {
    let query = e;
    if (query.hasOwnProperty('order_sn')){
      this.order_sn = query.order_sn;
      this.type = query.type
      this.getData()
    }
  },
  mounted(){
  
  },


这样就一切正常了!

评论/留言