微信小程序tabar页面不触发onShow

微信小程序tabar页面不触发onShow
【场景】:
开发中,原本js里面没有onShow方法,后面加上了onShow, 除了第一次页面加载调用了onShow方法,之后切换页面都没有触发。
【解决办法】:清除微信开发者工具的缓存,重新编译。(新添加的方法在生命周期函数里面调用,都需要清除缓存之后重新编译才能正常调用)

【场景2】:
退出登录后,切回列表页面,发现原来的数据没有重置改变
【解决办法】:wx.reLaunch(url) 清除程序缓存。

备注: taber页面加载的时候,只有初次加载会调用onLoad, 之后会走缓存而不会再次调用onLoad方法,如果需要一进入页面就重新加载数据,要在onShow里面调用初始化方法

微信小程序,可以通过以下步骤实现跳转到 TabBar 页面并传参: 1. 在非 TabBar 页面的JS文件,可以使用`wx.navigateTo`方法跳转到一个页面,并传递参数: ```javascript jumpToTabBar: function() { const queryString = 'param1=value1&param2=value2'; // 构建queryString const url = '/pages/middle/middle?queryString=' + encodeURIComponent(queryString); // 拼接URL并进行编码 wx.navigateTo({ url: url }); } ``` 2. 创建一个页面(middle),用于接收参数,并在该页面的JS文件获取参数并跳转到TabBar页面: ```javascript onLoad: function(options) { const queryString = options.queryString; // 获取queryString const params = this.parseQueryString(queryString); // 解析queryString // 使用解析后的参数进行其他操作 console.log(params.param1); // 输出'value1' console.log(params.param2); // 输出'value2' // 跳转到TabBar页面 wx.switchTab({ url: '/pages/tabBar/index/index' }); }, parseQueryString: function(queryString) { const params = {}; const paramStrs = queryString.split('&'); for (let i = 0; i < paramStrs.length; i++) { const param = paramStrs[i].split('='); const key = decodeURIComponent(param[0]); const value = decodeURIComponent(param[1]); params[key] = value; } return params; } ``` 在上述代码,`jumpToTabBar`方法构建了带有queryString的URL,并通过`wx.navigateTo`跳转到页面。在页面的`onLoad`生命周期方法,通过`options`参数获取到URL的queryString,并通过`parseQueryString`方法解析出参数。然后可以使用解析后的参数进行其他操作。最后,使用`wx.switchTab`方法跳转到TabBar页面。 需要注意的是,由于URL长度限制和安全性考虑,queryString的长度和内容有一定限制。如果需要传递较长或敏感数据,建议使用其他方式,如通过接口获取数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值