小程序
小游戏
企业微信
微信支付
扫描小程序码分享
A页面提交对后台数据库数据进行了更新。
B页面使用到相关数据。需要同步更新。
问题:
A页面完成提交后,如何触发B页面更新?
但我想知道除了onShow刷新B页面,是否还有其他方法?
A页面提交更新频率非常小,如果使用onShow,那么每次切换到B页面都得发送请求到后台请求获取数据
(基本每次都是获取一样的数据。本来是要onLoad获取一次就好了)。
这个感觉不合理啊。这种情况多了,那不是服务器压力山大!!!
9 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
getCurrentPages()
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
var that = this
var pages = getCurrentPages();//当前页面栈
if (pages.length > 1) {
var beforePage = pages[pages.length - 2];//获取上一个页面实例对象
//我的订单列表局部刷新
if (beforePage.detailsRefreshPages) {
console.log(that.data.index)
beforePage.detailsRefreshPages(that.data.index, types);//触发父页面中的方法
}
谢谢!感觉这个正是我想要的。
不客气
总结一下,有四个方案:
使用缓存setStorageSync
使用全局变量
使用view隐藏/显示。伪页面实现。
使用getCurrentPages()。
我考虑下看看用那种方便吧。
第一次发帖这么多人回帖。非常感谢大家!
A页面提交的时候存个字段到缓存,B页面onshow根据缓存请求数据并改字段为false
放在全局变量里面,a提交完刷新全局变量就行了,B在全局变量里面拿值
少不了onShow呀
emm,。。。他没说一定要用onshow处理吧!。。 =.=
AB页面放到一块不就结了
自己写一个简单的订阅,触发(观察者模式);在A页面订阅A事件;在B页面触发A事件就行;
我一般遇到这个事情都这么干;
如果A在B的后面可以用发布订阅的模式来做
不知道在A页面用页面栈能行不,我没试过
let page = getCurrentPages().reverse1()[1]
page.setData({
xxx: xxxx
})
这个..reverse1改成reverse reverse加(会报错。。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
getCurrentPages()
var that = this
var pages = getCurrentPages();//当前页面栈
if (pages.length > 1) {
var beforePage = pages[pages.length - 2];//获取上一个页面实例对象
//我的订单列表局部刷新
if (beforePage.detailsRefreshPages) {
console.log(that.data.index)
beforePage.detailsRefreshPages(that.data.index, types);//触发父页面中的方法
}
}
谢谢!感觉这个正是我想要的。
不客气
总结一下,有四个方案:
使用缓存setStorageSync
使用全局变量
使用view隐藏/显示。伪页面实现。
使用getCurrentPages()。
我考虑下看看用那种方便吧。
第一次发帖这么多人回帖。非常感谢大家!
A页面提交的时候存个字段到缓存,B页面onshow根据缓存请求数据并改字段为false
放在全局变量里面,a提交完刷新全局变量就行了,B在全局变量里面拿值
少不了onShow呀
emm,。。。他没说一定要用onshow处理吧!。。 =.=
AB页面放到一块不就结了
自己写一个简单的订阅,触发(观察者模式);在A页面订阅A事件;在B页面触发A事件就行;
我一般遇到这个事情都这么干;
如果A在B的后面可以用发布订阅的模式来做
不知道在A页面用页面栈能行不,我没试过
let page = getCurrentPages().reverse1()[1]
page.setData({
xxx: xxxx
})
这个..reverse1改成reverse reverse加(会报错。。