今天在维护一个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(){ },
这样就一切正常了!