小程序项目,返回到列表页如何做到不刷新页面但能更新数据?
小程序项目结构如下:
进入小程序,首先到“项目列表”页面,项目列表页面有创建项目,修改项目,删除项目功能,每个项目list有挂该项目下的方案总数,点击该项目list进入“方案列表”页面,方案列表有创建方案,方案编辑,删除方案功能,每个方案list挂有该方案的计算状态及计算结果信息,点击该方案list进入“方案编辑”页面,方案编辑页面有方案计算,方案保存等按钮。
请教一下各位开发大大们是怎么处理这种情况的?
如你所说,想要在不刷新此页面的情况下更改数据,那么就要在上一个页面操作此页面的数据,当返回时页面已经渲染完毕,这样就达到了你的效果
加入此页面渲染的列表为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
})
这样就实现了
可以用通知广播
比如有投票选手列表页面,显示每个选手的得票数,在onLoad的时候监听VOTE_ACTIVITY_ADD事件
Event.listen(Event.VOTE_ACTIVITY_ADD, this.addGainVotes.bind(this), this)
进入到选手详情页之后如果给该选手点赞就发送事件
Event.emit(Event.VOTE_ACTIVITY_ADD, playerId)
这样列表页就可以调用addGainVotes方法给那个选手加一票而不用再重新获取列表数据,返回时看到的就是更新的数据了