一、页面跳转后刷新
页面逻辑:我的页面 点击头像---登录弹窗---点击去登录---登录后跳转到我的页面
存在的问题:没有加载我的页面接口
解决方案:
uni.switchTab({ url: this.backurl, success(){ let page = getCurrentPages().pop(); //跳转页面成功之后 console.log(getCurrentPages(),page); if (!page) return; page.onLoad(); //如果页面存在,则重新刷新页面 } })
二、情景描述:
从页面A跳转到页面B
B页面接收A页面传递的参数
B页面点赞操作,
从B页面返回到A页面 A页面数据同步
解决方案: 在B页面设置一个刷新页面的标识 A页面识别标识后更新数据
B页面
onLoad(e) { this.cid = e.cid; this.getList(); var pages = getCurrentPages();//函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。 var prevPage = pages[pages.length - 2]; //上一个页面 console.log(prevPage); //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 prevPage.setData({ isDoRefresh:true }) },
A页面
onShow() { let pages = getCurrentPages(); let currPage = pages[pages.length-1]; if (currPage.data.isDoRefresh == true){ currPage.data.isDoRefresh = false; this.init(); } }, //onLoad(从B页面返回A页面不会执行) // 监听页面加载, // 其参数为上个页面传递的数据,参数类型为Object(用于页面传参), //onShow(从B页面返回A页面执行) //监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回//露出当前页面