先说思路
1.我们需要把每次登录后获取的账号存到缓存里
2.判断缓存是否有值,没有值直接存,有值则须判断是否重复,不重复在存到数组里
3.把得到的数组再存到缓存里
4.既然需要判断缓存是否有值,那么就需要先从缓存取值,所以就需要把第一步换成从缓存取值
5.直接给切换需要的数组赋值
上代码
var cdd = uni.getStorageSync("cdd")//从缓存取值
console.log("取值" + cdd)
if (cdd) {//缓存有值
cdd = JSON.parse(cdd);//字符串转数组对象
console.log(cdd)
var bool1 = cdd.some(item => item.username == obj.account)//判断是否重复true重复false不重复
console.log(bool1)
if (!bool1) {//如果不重复则往数组push
cdd.push({
"username": list.account//这个值为动态值,登录后的账号
})
}
} else {//缓存没值,直接把账号赋值
cdd = [{
"username": list.account//这个值为动态值,登录后的账号
}]
}
console.log(cdd);
uni.setStorageSync("cdd", JSON.stringify(cdd))//转换字符串存储到缓存里(缓存的数据类型为字符串)
然后在我们需要切换的
<button type="default" @click="show = true">切换账号</button>
<u-picker :show="show" :columns="column" @confirm="confirm" @cancel="cancel" keyName="username"></u-picker>
data() {
return {
show: false,
column: [JSON.parse(uni.getStorageSync("cdd"))]
}
},
methods: {
confirm(e) {
this.selectname = e.value[0].username
this.login()//调用登录的方法传值
console.log('confirm', e.value[0].username)
},