一、switch开关
这个坑应该埋了很久了,正常人都会这样写<switch @change="handleSwitch"></switch>,对啊对啊,官方文档都是这样说的。但是这样一触发开关,就无法回退了,就是触发了开关状态肯定会改变,而且这个改变是无法变动的。
这就导致我们根据后台接口返回的成功或者是失败重置switch状态无法生效。
最优解决方法: 禁用switch的滑动,将@change改为@click,单纯当做点击事件
<switch color="#4451F1"
style="transform:scale(0.7)"
:checked="isWx"
disabled
@click="changeSwitch('wx')" />
完美解决,但是就是少了点击时候丝滑的滑动~
二、分包问题
uniapp如果想打包成微信小程序,微信小程序的主包可是要求2m以下呀,除了把图片在服务器引入,还可以在每个的分包中加入文件夹 static/ 这样打出来的图片和音频等静态资源一般在分包里面,主包不会很大~
manifest.json改为源码模式
"mp-weixin" : {
"optimization" : {
"subPackages" : true
}
},
加上这句一定要重新运行代码,不要傻傻的等待哟~
三、控制台不知名warnning
在控制台看到提示警告<v-uni-view v-for="item in child">: component lists rendered with v-for should have explicit keys.
按照中文的理解就是v-for少了key。
解决方法:全局搜索v-for字符,结果在uni-ui的<uni-data-pickerview>中的v-for少了一个key,坑坑。
四、微信小程序-授权登录
微信小程序授权登录,uni.login这个api一定要用对顺序,否则就会报不知名的错误,一开始是用在跟后端接口交互的函数前面,在uni.login的成功回调中立马请求后端接口,结果发现后端同事接口报错啦
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
刚开始我是果断甩锅给后端同事
后面发现是我错了,真正的使用是应该在onShow上
onShow(){
let that = this
uni.login(res){
that.code = res.code
}
}
就是一定,一定要在进入页面的调用uni.login方法,避免报错!