【小程序】使用uni-app搭建小程序环境---页面刷新问题

一、页面跳转后刷新

页面逻辑:我的页面 点击头像---登录弹窗---点击去登录---登录后跳转到我的页面

存在的问题:没有加载我的页面接口

解决方案:

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页面执行)
//监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回//露出当前页面

猜你喜欢

转载自www.cnblogs.com/websmile/p/11950409.html