小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 需求的场景描述(希望解决的问题)
从A页面跳转到B页面之后,B页面对用户数据做了一些处理,处理之后返回A页面,但是A页面onShow中的函数没有重新执行,刷新页面数据
A页面跳转到B页面:
B页面返回A页面:
- 希望提供的能力
怎样才能返回上一页之后,页面中onShow中函数重新执行,加载新的数据
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我也碰到这个问题 在开发者工具是正常
但是在真机上就出现这个问题了
请问你最后怎么解决呢
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
class Event{
constructor(){
this
.callbacks = {}
}
set(key, value){
if
(!key)
return
(key
in
.callbacks)
(
.callbacks[key])(value)
on(key, fn){
(!key ||
typeof
(fn) !=
'function'
){
false
.callbacks[key] = fn
true
export
default
new
Event()
A页面
import event from '../../utils/event'
onShow(){
event.on('classifyId',(classifyId)=>{
1. 监听B页面返回的值
2. 执行刷新xxx
})
B页面
onBack(){
event.set('classifyId',{})
wx.navigateBack({ delta:1 })
关键是看你onShow里数据处理逻辑怎么写的。
onShow就是直接这样重新获得列表
getTeamList里又是怎么写的
现在是没有分页的
你用concat连接的,肯定第二次执行的时候就会重复列表了。
onShow里这么写:
onShow:
function
() {
.setDta({
teamList: [],
lastPage: 1
.getTeamList()
好的,现在就是这样处理的,但是以后有分页了就不能这样处理了
是执行了的,但是之前的列表还在,又重新加载了一个新的列表
你在A页面的onShow()中,打印一下看看。这个页面方法在回退之后应该是会执行一次的
怎么判断是返回的页面呢?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我也碰到这个问题 在开发者工具是正常
但是在真机上就出现这个问题了
请问你最后怎么解决呢
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()中,打印一下看看。这个页面方法在回退之后应该是会执行一次的
怎么判断是返回的页面呢?