收藏
回答

微信小程序如何修改页面栈?

堆栈中已有ABCD页面,由于需要跳转E页面,并且在之后点击返回,需要跳转到B页面 (原有的ABCD为正常跳转)

回答关注问题邀请回答
收藏

3 个回答

  • 禾店科技
    禾店科技
    2021-05-11

    获取当前页面栈的实例可以通过getCurrentPages() 函数。以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素及时当前页面。


    以下为页面栈的使用例子:


    前一页面:


    Page({

    data: {

    name: ''


    },


    ...


    ,


    //更新name


    changeData: function(name){

    this.setData({

    name: name


    })


    }


    })


    当前页面:


    Page({

    //此方法用于文本框输入回调


    inputTyping: function (e) {

    //获取页面栈


    var pages = getCurrentPages();


    var Page = pages[pages.length - 1];//当前页


    var info = prevPage.data //取上页data里的数据也可以修改


    if(pages.length > 1){ //说明有上一页存在


    //上一个页面实例对象


    var prePage = pages[pages.length - 2];


    //关键在这里,调用上一页的函数


    prePage.changeData(e.detail.value)


    }


    }


    })


    2021-05-11
    有用 1
    回复 1
    • 夹克
      夹克
      2021-06-09
      你写的这是什么玩意儿
      2021-06-09
      4
      回复
  • 磊有三颗小石头
    磊有三颗小石头
    2021-04-02

    方案1:自己做返回按钮,根据业务情况,指定不同的delta返回数量。

    方案2:做一个全局方法,用来承接特殊的页面跳转控制,比如需要先跳转到首页,然后在跳转进某一个页面,从而变相的控制了页面栈。


    以上两个方案都在用。

    2021-04-02
    有用
    回复
  • Wang
    Wang
    2018-11-07

    无法修改页面栈,或者说不支持修改页面栈

    2018-11-07
    有用
    回复 7
    • Wang
      Wang
      2018-11-07

      我们小程序的几个功能因此已经被拒绝了。

      2018-11-07
      回复
    • Arnold
      Arnold
      2018-11-07

      那有没有什么取巧的方式去实现这种效果呢?


      2018-11-07
      回复
    • Wang
      Wang
      2018-11-07回复Arnold

      干掉返回,自定一个返回按钮?!!

      2018-11-07
      回复
    • Wang
      Wang
      2018-11-07回复Arnold

      突然想到,正着跳转都传一个参数,当返回的时候没有这个参数就跳转到指定页面。也许可行

      2018-11-07
      回复
    • Arnold
      Arnold
      2018-11-07

      我现在是设置了本地储存,在onshow时,ture跳转,fase不跳转。不过这样页面有两个过程,先道中转页面,再到目标页,不是很美观啊


      2018-11-07
      回复
    查看更多(2)
登录 后发表内容