html52.com
我爱小程序-开发者交流社区

小程序项目,返回到列表页如何做到不刷新页面但能更新数据

小程序项目,返回到列表页如何做到不刷新页面但能更新数据?

小程序项目结构如下:

进入小程序,首先到“项目列表”页面,项目列表页面有创建项目,修改项目,删除项目功能,每个项目list有挂该项目下的方案总数,点击该项目list进入“方案列表”页面,方案列表有创建方案,方案编辑,删除方案功能,每个方案list挂有该方案的计算状态及计算结果信息,点击该方案list进入“方案编辑”页面,方案编辑页面有方案计算,方案保存等按钮。

请教一下各位开发大大们是怎么处理这种情况的?

网友回复

d x:

可以用通知广播

比如有投票选手列表页面,显示每个选手的得票数,在onLoad的时候监听VOTE_ACTIVITY_ADD事件

Event.listen(Event.VOTE_ACTIVITY_ADD, this.addGainVotes.bind(this), this)

进入到选手详情页之后如果给该选手点赞就发送事件

Event.emit(Event.VOTE_ACTIVITY_ADD, playerId)

这样列表页就可以调用addGainVotes方法给那个选手加一票而不用再重新获取列表数据,返回时看到的就是更新的数据了


东东:

我是这么做的,列表页有个isShowPage,默认是false,当获取到列表数据后改成true,获取列表数据前对isShowPage做判断,如果是false,有加载框,否则不显示加载框。从列表页到详情页使用的是navigateTo,所以在返回到列表页后重新获取列表数据,就可以做到无感知的刷新页面。

三世羽翾:

如你所说,想要在不刷新此页面的情况下更改数据,那么就要在上一个页面操作此页面的数据,当返回时页面已经渲染完毕,这样就达到了你的效果

加入此页面渲染的列表为goods,那么在上一个或多个页面可以

let pages = getCurrentPages();

let goods = pages[pages.length - 2].data.goods;//其中数字1代表当前页面,每加1则是页面栈下一层

/*

此处为对数据的操作,如:let newGoods = goods.slice(0,1);

*/

pages[pages.length - 2].setData({

goods:newGoods

})

这样就实现了

sun:

onShow

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付