控制指定的页面刷新

控制指定的页面刷新当我们在某个页面进行操作之后 我们希望指定的那个页面能刷新 以小程序为例子我们需要设置一个全局的变量 作为刷新的列表 存储指定刷新的页面的路由 然后定义两个全局的函数 setReflash 和 execReflash setReflash 将当前页面的上一頁的路由或者指定的多个路由添加到刷新列表中 设置返回上一页要刷新提示 callbackfunc 要回调执行的函数

当我们在某个页面进行操作之后,我们希望指定的那个页面能刷新,以小程序为例子

我们需要设置一个全局的变量,作为刷新的列表,存储指定刷新的页面的路由,然后定义两个全局的函数,setReflash和execReflash;setReflash将当前页面的上一頁的路由或者指定的多个路由添加到刷新列表中:

// 设置返回上一页要刷新提示 // callback function 要回调执行的函数 // routes Array 路由数组 setReflash: function (callback, routes) { // var pages = getCurrentPages(); // var prevPage = pages[pages.length - 2]; // 上1个页面 // var prevPath = prevPage.route; // 上一页路径 // 将全局变量reflashPath设置为上一页路径 var routeArr = this.globalData.reflashPath || []; console.log('routes:', routeArr, routes) if (routes && routes.length > 0) { for (let route of routes) { if (routeArr.indexOf(route) == -1) { routeArr.push(route); } } this.globalData.reflashPath = routeArr; } else { console.log('--ss1--'); var route = this.getPagePath(1); if (routeArr.indexOf(route) == -1) { routeArr.push(route); } this.globalData.reflashPath = routeArr; console.log(routeArr); } callback && callback(); },

execReflash用于检验当前页面是否在刷新列表内,若是,则执行刷新,并将刷新的页面的路由从刷新列表中移除,否则不执行刷新:

// 刷新包装处理函数 // callback function 刷新需要执行的回调函数 execReflash: function (callback) { // 获取当前页面路径 var curPath = this.getPagePath(0); console.log('curPath:', curPath) var routes = this.globalData.reflashPath || []; console.log('routes:', routes) if (routes && routes.length > 0) { for (let i in routes) { if (routes[i] == curPath) { routes.splice(i, 1); callback && callback(); break; } } } },

实际应用:

// 假设场景 用户进入过页面A ,从页面B 进入页面C,现在返回时需要刷新页面B,并且当再次进入页面A时,需要刷新页面A // pageA 的onShow函数中 onShow:function(){ execReflash(()=>{ // 执行刷新内容,请求接口获取数据等 }) }, // pageB 的onShow函数中 onShow:function(){ execReflash(()=>{ // 执行刷新内容,请求接口获取数据等 }) }, // pageC 的某个函数中 toDo:function(){ setReflash(()=>{ // 返回上一页 wx.navigateBack({ delta:1 }) },['页面A的路由','页面B的路由']) },

稍显简陋,如果有更好的建议请给我留言,感激~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233378.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux的vi命令详解_linux中如何更新vi

    linux的vi命令详解_linux中如何更新vi最近vi用的多,很多技巧不知道,备注一份,vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

    2025年6月12日
    7
  • java 中级面试题及答案「建议收藏」

    java 中级面试题及答案「建议收藏」java中级面试题及答案1.MyBatis中,根据Id查询单个Order对象,动态SQL如何编写?A.SELECT*FROMOrderWHEREID=#{id};B.SELECT*FROMOrderWHEREID=#{id};C.SELECT*FROMOrderWHEREID=#{id};D.SELECT*FROMOrderWHEREID=#{id};B2.当一个bean的作用域为Prototype,表示含义是什

    2022年6月16日
    27
  • 首页的显示和问题[通俗易懂]

    首页的显示和问题[通俗易懂]首页的显示和问题

    2022年4月21日
    61
  • 插头DP小结_dp插头接线标准

    插头DP小结_dp插头接线标准插头DP一般都是棋盘模型,找路径或者环路最值或者方案数。插头:说白了就是两个联通的格子,一个走向另一个,那么这里就有一个插头。轮廓线:DP逐格DP,那么轮廓线可以分开DP过的格子和未DP的格子。轮廓线的长度明显是m+1。插头垂直于轮廓线。转移:轮廓线在换行的时候要位移,这个画画图就出来了。然后具体问题具体讨论。比如任意多个环路,不考虑方向,那么就是eatthetrees,用最

    2025年7月5日
    5
  • pycharm2021激活码10月_在线激活[通俗易懂]

    (pycharm2021激活码10月)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    47
  • STM32看门狗详解[通俗易懂]

    STM32看门狗详解[通俗易懂]看门狗的作用:防止单片机因未知原因死机或比我们预期的时间过长长时间不能响应,如果出现这种问题,看门狗就会把单片机复位独立看门狗(IWDG):时钟来源:内部低速时钟(LSI),所以用看门狗时不需要配置时钟一般配置过程:寄存器:IWDG_KR:32位寄存器,低16位有效,只写写入0xAAAA,喂狗0x5555,取消IWDG_PR、IWDG_RLR的写保护0xCCCC,启动看门狗IWDG_PR:32位寄存器,低3位有效配置分频系数,4*2^prer.

    2022年4月30日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号