- 需求的场景描述(希望解决的问题)
从A页面跳转到B页面之后,B页面对用户数据做了一些处理,处理之后返回A页面,但是A页面onShow中的函数没有重新执行,刷新页面数据
A页面跳转到B页面:
B页面返回A页面:
- 希望提供的能力
怎样才能返回上一页之后,页面中onShow中函数重新执行,加载新的数据
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | 需求 | navigator | 工具 | v1.02.18091111 | 1.9.91 |
- 需求的场景描述(希望解决的问题)
从A页面跳转到B页面之后,B页面对用户数据做了一些处理,处理之后返回A页面,但是A页面onShow中的函数没有重新执行,刷新页面数据
A页面跳转到B页面:
B页面返回A页面:
- 希望提供的能力
怎样才能返回上一页之后,页面中onShow中函数重新执行,加载新的数据
6 个回答
wx.navigateBack({
delta: 1
})
在js文件中找到这个
onShow: function () {
//获取数据
this.gainData()
},
可以刷新页面的数据
我也碰到这个问题 在开发者工具是正常
但是在真机上就出现这个问题了
请问你最后怎么解决呢
class Event{
constructor(){
this
.callbacks = {}
}
set(key, value){
if
(!key)
return
if
(key
in
this
.callbacks)
(
this
.callbacks[key])(value)
}
on(key, fn){
if
(!key ||
typeof
(fn) !=
'function'
){
return
false
}
this
.callbacks[key] = fn
return
true
}
}
export
default
new
Event()
A页面
import event from '../../utils/event'
onShow(){
event.on('classifyId',(classifyId)=>{
1. 监听B页面返回的值
2. 执行刷新xxx
})
}
}
B页面
import event from '../../utils/event'
onBack(){
event.set('classifyId',{})
wx.navigateBack({ delta:1 })
}
关键是看你onShow里数据处理逻辑怎么写的。
onShow就是直接这样重新获得列表
getTeamList里又是怎么写的
现在是没有分页的
你用concat连接的,肯定第二次执行的时候就会重复列表了。
onShow里这么写:
onShow:
function
() {
this
.setDta({
teamList: [],
lastPage: 1
})
this
.getTeamList()
}
好的,现在就是这样处理的,但是以后有分页了就不能这样处理了
是执行了的,但是之前的列表还在,又重新加载了一个新的列表
你在A页面的onShow()中,打印一下看看。这个页面方法在回退之后应该是会执行一次的
怎么判断是返回的页面呢?