wx.switchTab怎么跳转带值?

问题:使用wx.switchTab跳转页面时,路径后面不能携带参数,那么我们怎么来携带参数呢?
思路:可以在跳转之前设置一个全局变量用作标识,到跳转目的页面去获取这个全局变量的值来实现效果。
解决:
首先在app.js中设置全局变量

globalData: {
currentShow:null
},

注意在其它不是app.js的文件中使用全局变量得先申明app变量:
var app = getApp()

其次在实现跳转操作的(A页面)地方,改变全局变量:

clicktrainNum:function(e){
let index =e.currentTarget.dataset.index
if(index==0){
app.globalData.currentShow = true
wx.switchTab({
url: '../myTrain/mytraining/mytraining',
})
}
},

最后,在B页面的onLoad处:

onLoad: function(options) {
if (app.globalData.currentShow) {
this.setData({
currentTab:1
})
app.globalData.currentShow = false
}
},

如此一来就能解决这个问题了。

const app = getApp<IAppOption>() const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0' Component({ data: { username:'', password:'', motto: '登录', userInfo/*用户信息*/: { avatarUrl/*头像的地址*/: defaultAvatarUrl, nickName: '', }, message:'', hasUserInfo: false, canIUseGetUserProfile: wx.canIUse('getUserProfile'), canIUseNicknameComp: wx.canIUse('input.type.nickname'), }, methods: { // 事件处理函数 bindViewTap() { wx.navigateTo({ url: '../logs/logs', }) }, onChooseAvatar(e: any) { const { avatarUrl } = e.detail const { nickName } = this.data.userInfo this.setData({/*修改数据 thin.setData({})*/ "userInfo.avatarUrl": avatarUrl, hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl, }) }, onInputChange(e: any) { const nickName = e.detail.value const { avatarUrl } = this.data.userInfo this.setData({ "userInfo.nickName": nickName, hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl, }) }, getUserProfile() { // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 wx.getUserProfile({ desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 success: (res) => { console.log(res) this.setData({ userInfo: res.userInfo, hasUserInfo: true }) } }) }, bindName(e:any){ this.setData({username:e.detail.value}) }, bindCipher(e:any){ this.setData({passowrd:e.detail.value}) }, clicKMe () { const {username,password} = this.data wx.request({ url:'http://127.0.0.1:8000/index/', data:{ username: username, password: password, }, header:{ 'Content-Type':'application/json' }, method:'POST', dataType:"json", success(res){ console.log("请求成功",res.data); if(res.statusCode==200){ wx.showToast({ title:(res.data as {message?:any}).message, icon:"none" }) wx.switchTab({ url:'/pages/home/home' }) } else { wx.showToast({ title:(res.data as {message?:any}).message, icon:'none' }) } } }) }, // wx.navigateto 用于非tabbar页面跳转的 // wx.switchTab tabbar页面跳转的 }, })
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值