关于页面栈的一些问题?以及airbnb小程序日期选择器实现逻辑的讨论
发布于 5 年前 作者 pingxie 7219 次浏览 来自 问答
//页面a跳转到页面b后
let pages = getCurrentPages();
let page = pages[pages.length - 2];//获取页面a
//在页面b改变页面a中data的值
page.setData({
    productId:1
})

流程:a-b-a

a-b是跳转   b-a的时候是返回

问题是这样的,偶然在airbnb的小程序里看到他们自定义的日期选择器,选完时间后返回,返回的页面能拿到日期选择器页面选择的时间,所以有了上面这串代码,不知道这么使用会不会出问题,

还有另外几个思路,可以把选择器的时间弄成全局的储存,或者存在storage里面,在页面a,onshow的时候解析,无疑是可以实现这个功能的,但是我想知道以上的代码会不会有问题,文档上写着不要改变页面栈,这样应该算是改了吧?

3 回复

直接page setdata的方式不是不行,实在是有点丑陋

我们的思路是自己实现broadcast center

需要的页面注册一下通知接受

在业务逻辑点send broadcast

个人理解是不能修改是指修改页面栈的顺序,或者往里面插入之类的吧

我有很多地方也只直接page.setData的。。哈哈哈哈。。挂了再说吧

求各位大佬指点

回到顶部