收藏
回答

wx.navigateBack 是否可以增加对自定义传参的支持?

wx.navigateBack

目前只能控制返回几层,因为小程序最大支持打开10级页面,实际有类似以下场景(目前全部使用 navigateTo 打开):

用户A主页 -> 评价详情1 -> (点击头像进入)用户A主页 -> 评价详情2 ……

如果能支持 navigateBack 传递自定义参数,就不用一直新开页面,可以自行判断使用返回方法,在 onLoad 或 onShow 生命周期获取新的参数,这将会大大提升小程序页面跳转的体验。理论上体验可以做到和APP一样支持打开无限层级页面,又不会因为打开太多页面导致内存暴增。希望官方评估考虑。


----------------------

突然发现有不少人关心这个问题,我就挖坟补充一下:

我们自己实现了近似小程序页面生命周期的方法,从在跳转动作执行时,先从页面栈中找到目标页面,执行这个方法并传递参数,然后再 back 相对应的层级,用法和 onShow 等等一样

onNavigateBack(options) { }

因为我们的小程序是有一层自己封装的路由,所以这个事情在统一路由层面就完成了,业务开发者不用去关心怎么实现的,还是很通用的。



最后一次编辑于  2021-05-21
回答关注问题邀请回答
收藏

13 个回答

  • momo
    momo
    2020-11-18

    navigateBack  +  wx.setStorageSync(string key, any data)


    2020-11-18
    有用
    回复
  • this
    this
    2020-10-10

    你是想要navigateBack做页面跳转?

    2020-10-10
    有用
    回复 3
    • 季建
      季建
      2020-10-10
      我现在的业务场景有如果发现页面栈中有相同url+参数的目标页,不再新开。直接back,算是跳转吧。我提这个问题,一方面是为了解决页面打开10层限制,当然选中这个api有一些其他的小的考虑,比如为了规避同一个页面多开状态管理混乱的问题,当然可以不用状态,就是比较麻烦了。
      2020-10-10
      回复
    • this
      this
      2020-10-10回复季建
      可不可以用触发自定义事件的方法,在back的时候获取到参数?这个方案有没有想过
      2020-10-10
      回复
    • 季建
      季建
      2020-10-10回复this
      考虑过,实际会导致很多页面都要一个独立的事件,从设计实现和代码维护上代价太大了。
      2020-10-10
      回复
  • 微喵网络
    微喵网络
    2020-10-10

    你要搞清楚返回的定义,你这种就不能算是返回了

    2020-10-10
    有用
    回复 19
    • 季建
      季建
      2020-10-10
      你难道没有10级这个困惑吗?
      2020-10-10
      回复
    • 微喵网络
      微喵网络
      2020-10-10回复季建
      好的产品设计可以规避,就算有也不是通过你这个方法来解决
      2020-10-10
      回复
    • 季建
      季建
      2020-10-10回复微喵网络
      就事论事,而不是无脑认为不合理
      2020-10-10
      回复
    • 微喵网络
      微喵网络
      2020-10-10回复季建
      是就事论事
      2020-10-10
      回复
    • 季建
      季建
      2020-10-10
      如果有什么好的方法,欢迎讨论
      2020-10-10
      回复
    查看更多(14)

正在加载...

登录 后发表内容
问题标签