微信小程序,点击左上角的返回,怎么让页面局部刷新。

我在页面B改了头像,返回到页面A,怎么让页面A在返回的时候头像也刷新一下

阅读 20.4k
5 个回答
✓ 已被采纳新手上路,请多包涵

详细教程:http://blog.sina.com.cn/s/blo...

若从A页面跳到B页面(A--->B),在B页面操作完成后需要刷新A页面的数据,有两种思路:(推荐使用第2种方法)
1.在返回A页面的时候调用A的页面onShow()方法,重新查询加载一次A页面即可,代码为:

onShow: function () {

this.onLoad();

},

这种方法返回A页面时需要重新加载页面,太慢,太Low!!

2.这种方法是极力推荐的:

在B页面中进行操作的时候就在后台刷新A页面,当返回A页面的时候就不需要再刷新加载A页面了:

具体步骤分为两步:

(1)。在父页面中添加刷新数据的方法:

changeData:function(){

this.onLoad();//最好是只写需要刷新的区域的代码,onload也可,效率低,有点low

}

(2)。在子页面中添加方法:并且在需要的地方进行调用(如success方法中setData之后调用that.changeParentData();)

changeParentData: function () {

var pages =getCurrentPages();//当前页面栈

if (pages.length >1) {

var beforePage = pages[pages.length- 2];//获取上一个页面实例对象

beforePage.changeData();//触发父页面中的方法

}

}

你看api文档,页面跳转会有对应的 生命周期函数,你在里边再刷头像就可以了。

新手上路,请多包涵

在onShow 里面加载数据就好了

新手上路,请多包涵

onShow:function(){

this.onLoad();

}

新手上路,请多包涵

可以B页面修改A页面的数据并在onShow里面去检测是都需要刷新
B:
// 获取上一页并修改对应参数
let pages = getCurrentPages();
let lastPage = pages[pages.length - 2];
lastPage.data.avatarUrl= "修改后的url";
lastPage.data.isUrlChange = true;
A:
onShow()里面
if (this.data.isUrlChange) {
this.setData({

avatarUrl: this.data.avatarUrl

});
this.data.isUrlChange= false;
};

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏