控制指定的页面刷新

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


相关推荐

  • Android 从零开始(一)[通俗易懂]

    Android 从零开始(一)[通俗易懂]Activity在我以网页web角度来认为的:Activity就是界面Layout就是html布局java就是js进行各种dom数据操作style就是cssAndroidManifest.xml-清单文件也可以简称为「manifest文件」。清单文件非常重要,它告诉系统我们的app有哪些activity,用到了什么权限等等信息。如果要新建activity,需要在清单中注册。<applicationandroid:allowBackup=”true” and

    2022年6月16日
    29
  • MongoDB 创建数据库

    MongoDB 创建数据库语法 MongoDB 创建数据库的语法格式如下 useDATABASE NAME

    2026年3月19日
    2
  • 雷电模拟器抓包教程_fiddler抓包安卓模拟器

    雷电模拟器抓包教程_fiddler抓包安卓模拟器1、首先,百度检索。参考别人的,大致上都是到安装证书就失败了。我后面只说几个关键点。2、安装证书,必须设置屏幕密码。我最开始使用把cef拷贝到,手机结果出现bug,安装不了。后来采用了在手机内部访问

    2022年8月1日
    7
  • 测试用例8大要素及额外10小要素【建议收藏】[通俗易懂]

    测试用例8大要素及额外10小要素【建议收藏】[通俗易懂] 测试用例八大要素  1.测试用例编号  由字母、字符、数字组合而成的字符串,有唯一性,易识别性。  eg:  1)系统测试:产品编号-ST-系统测试项名-系统测试子项名-编号  2)集成测试:产品编号-IT-集成测试项名-集成测试子项名-编号  3)单元测试:产品编号-UT-单元测试项名-单元测试子项名-编号  这样看到编号就可以知道是做的什么测试,测试的对象是什么,也方便维护。  2.测试项目  当前测试用例所在测试用例所属大类、被测需求、被测模块、被测单元等。 

    2022年6月28日
    68
  • 图像拼接算法的基本原理

    图像拼接算法的基本原理转自 http blog csdn net yuyin86 article details 全景视频是一种利用 360 度全景图象建立虚拟环境的新方法 全景图象是通过将普通照相机拍照到的边界部分重叠的图象进行拼接而创建的 可以利用图象重叠部分对应像素的相似性 通过采用一种行之有效的拼接算法 使得到的图象无缝平滑 来自研学论坛 Walkfarer 和 SCQ 的帖子 http

    2025年11月6日
    4

发表回复

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

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