控制指定的页面刷新

控制指定的页面刷新当我们在某个页面进行操作之后 我们希望指定的那个页面能刷新 以小程序为例子我们需要设置一个全局的变量 作为刷新的列表 存储指定刷新的页面的路由 然后定义两个全局的函数 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)
上一篇 2025年7月25日 上午11:01
下一篇 2025年7月25日 上午11:22


相关推荐

  • 计算机设备问题代码43,win10系统提示由于该设备有问题windows已将其停止(代码43)的修复方案…「建议收藏」

    计算机设备问题代码43,win10系统提示由于该设备有问题windows已将其停止(代码43)的修复方案…「建议收藏」有关win10系统提示由于该设备有问题windows已将其停止(代码43)的操作方法想必大家有所耳闻。但是能够对win10系统提示由于该设备有问题windows已将其停止(代码43)进行实际操作的人却不多。其实解决win10系统提示由于该设备有问题windows已将其停止(代码43)的问题也不是难事,小编这里提示两点:1、双击unknowndevice查看是否出现如下代码由于该设备有问题,wi…

    2022年6月28日
    99
  • mysql将字符串转为数字

    mysql将字符串转为数字MySQL字符串+0即可转为数字:<!–查找版本是否满足区间–><selectid="isVersion"resultType="java.lang.String"parameterType="map">SELECTversion_idfromjob_release_versionwheresrc_ver…

    2022年5月29日
    46
  • django url标签_未指定url怎么解决

    django url标签_未指定url怎么解决前言当我们访问网页的时候,后台返回列表中有n条数据,此时我们会使用分页,比如一页只展示10条,但是我们访问第一页的时候大多数情况下,都会给url一个默认值,访问的时候直接展示第一页数据案例我们的

    2022年7月29日
    9
  • FileReader 和FileInputStream的区别

    FileReader 和FileInputStream的区别java.lang.Object—-java.io.Reader—-java.io.InputStreamReader—-java.io.FileReaderjava.lang.Object—-java.io.InputStream—-java.io.FileInputStreamFileReader是读取字符流而FileInputStream读取的是字节流

    2022年5月7日
    44
  • iOS开发常用国外网站清单

    iOS开发常用国外网站清单工欲善其事必先利其器,最近发现临时查找一些东西容易浪费时间,花了点时间整理一下常用的网站,方便以后备用。国内的code4app,ui4app,cocoachina,oschina,csdn就不说了,基本上很好用。不过国外网站上的好东西更多,可惜找起来也更费时间,需要整理一下。主要分开发教程、示例项目、UI设计、问题解决几块。开发教程:即便过了入门阶段,还是要

    2022年7月12日
    20
  • CAD制图系列之中心线画法[通俗易懂]

    CAD制图系列之中心线画法[通俗易懂]我们将做个简单的笔记:CAD中心线怎么画CAD中心线一般为点划线,画法很简单,首先先设置线型一般步骤为:1、首先,打开CAD,点击进入图层特性管理器2、在图层特性管理器中点击线型进行设置3

    2022年8月3日
    16

发表回复

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

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