微信小程序,从详情页进入列表页,怎么局部刷新?
发布于 5 年前 作者 cluo 9121 次浏览 来自 问答

请教一个问题。微信小程序,从详情页进入列表页,怎么局部刷新?

订单列表页,头部是tab切换,可以下拉翻页。
每条数据都有不同行为的按钮操作。
比如:
待支付的订单,按钮(取消订单,去支付)
已完成的订单,按钮(去评论/查看评论,再次预订,删除订单)

假如:
我此刻点击 “待支付”选项下》第2页的》第5条数据,进入详情页(详情页的按钮和它的列表页按钮一致)》点击了“去支付”按钮

返回列表页,想要仍然在“待支付”选项下,第二页的第5条数据的位置上,但是这条数据已经移除了,因为该条数据已经是“已支付”状态了

或者说,我在列表页“全部”选项下,下拉到第3页,第5条,点击了一条“已完成”的订单,点击“去评论”,然后进入“评论页”》“提交”,返回列表页,仍然在“全部”选项下的,第3页,第5条的位置上,该数据已变为“已评论”的状态,按钮从“去评论”变更为“查看评论”

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
因为“下单”,“删除订单”,“去评论”,“去支付”,好多操作都会影响订单列表,为了每次都能得到最新的状态,所以我现在订单列表页用了onshow方法,导致每次列表页,都重新请求第1页数据,并且手动scrollTop=0。这样就导致我无法还原进入详情页之前的位置。有没有局部刷新的方法啊?既能更新某一条的数据,又能保存当前page和当前scrolltop位置。

2 回复

尽情全部刷新吧,小程序会自动差量刷新的。

点击去支付或评论等操作的时候,记录当前的tabid 和 该记录的id或样式名

每条记录的id或样式名,如idx-{page}-{该记录在这一页的索引位置}

例子:idx-3-5表示 第3页的第5条记录

操作返回时,onShow里就根据这3个条件去获取数据,然后结合

wx.pageScrollTo({ selector: ‘.idx-3-5’, duration: 300 })

回到顶部