收藏
回答

【管理员过来看看】小程序缺少页面间返回时传递数据(不是正向传递数据)的解决方案?

问题模块
API和组件


小程序正向的打开参数方式传递数据是有了,但没有考虑反向的页面返回数据的做法,该怎么做才方便又通用?我目前只是用事件通知的方式。

最后一次编辑于  2017-09-27  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

10 个回答

  • 换个角度看世界
    换个角度看世界
    2017-09-27

    描述清楚点

    2017-09-27
    赞同
    回复
  • 赛文.迪斯.雷特
    赛文.迪斯.雷特
    2017-09-27

    比如打开一个页面,选择了一个商品,然后返回上一个页面,

    此时应该同时也将选择的商品带回到上一个页面,但目前小程序只是页面返回,

    数据返回并没有提供对应的方式处理

    2017-09-27
    赞同
    回复
  • 换个角度看世界
    换个角度看世界
    2017-09-27

    暂时好像没有提供这种处理方式

    2017-09-27
    赞同
    回复
  • 金瓜兜儿
    金瓜兜儿
    2017-09-27

    第二个页面选择后,保存到全局,第一个页面在onshow时读取全局就可以了

    2017-09-27
    赞同
    回复
  • 赛文.迪斯.雷特
    赛文.迪斯.雷特
    2017-09-27

    现在我用的是事件触发,也是一种解决方式,应该比全局更优一点吧,


    但总觉得应该提供系统级别的解决方案才合理


    除非他们之前没有想到这个问题。

    2017-09-27
    赞同
    回复
  • 换个角度看世界
    换个角度看世界
    2017-09-27

    用户在新页面点选了商品之后,在bindtap事件里,通过getCurrentPages()的方式得到当前的页面栈,然后可以通过页面栈直接操作对应页面里的属性和方法。

    2017-09-27
    赞同
    回复
  • 赛文.迪斯.雷特
    赛文.迪斯.雷特
    2017-09-27

    你这种方式,将两个页面绑的耦合的太紧了,

    如果是一个比较通用的页面,好多个页面都要调用它来选择数据的话

    你怎么处理?难道还要逐个的if或者case处理?

    2017-09-27
    赞同
    回复
  • 赛文.迪斯.雷特
    赛文.迪斯.雷特
    2017-09-27

    其实通过扩展已有的接口

    wx.navigateBack({

    delta: 1

    })

    很容易实现的,比如可带入返回参数


    wx.navigateBack({

    delta: 1,

    data:{}  //这里是自定义要返回的数据

    })


    在上一级页面的onshow(optins)里

    optins加个区别标识optins.back==true表示这里的数据是返回的

    2017-09-27
    赞同
    回复
  • 换个角度看世界
    换个角度看世界
    2017-09-27

    其实你心里已经有答案了,在这里问了也是白问。

    2017-09-27
    赞同
    回复
  • 赛文.迪斯.雷特
    赛文.迪斯.雷特
    2017-09-27

    关键是小程序没有提供这种方案出来用啊!就是希望官方可以考虑增加。

    2017-09-27
    赞同
    回复