收藏
回答

使用wx.navigateBack();返回上一页,为什么onShow中的函数不

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 navigator 工具 v1.02.18091111 1.9.91

- 需求的场景描述(希望解决的问题)

从A页面跳转到B页面之后,B页面对用户数据做了一些处理,处理之后返回A页面,但是A页面onShow中的函数没有重新执行,刷新页面数据

A页面跳转到B页面:

        

B页面返回A页面:


- 希望提供的能力

怎样才能返回上一页之后,页面中onShow中函数重新执行,加载新的数据

最后一次编辑于  2018-11-28
回答关注问题邀请回答
收藏

6 个回答

  • 禾店短剧系统
    禾店短剧系统
    2021-05-30

    wx.navigateBack({

    delta: 1

    })


    在js文件中找到这个

    onShow: function () {

    //获取数据

    this.gainData()

    },

    可以刷新页面的数据

    2021-05-30
    有用 2
    回复
  • 王妙端
    王妙端
    2019-10-08

    我也碰到这个问题 在开发者工具是正常

    但是在真机上就出现这个问题了

    请问你最后怎么解决呢

    2019-10-08
    有用
    回复
  • 微盟
    微盟
    2018-11-29
    class Event{
        constructor(){
            this.callbacks = {}
        }
        set(key, value){
            if(!key)
                return
     
            if(key in this.callbacks)
                (this.callbacks[key])(value)
        }
        on(key, fn){
            if(!key || typeof(fn) != 'function'){
                return false
            }
            this.callbacks[key] = fn
            return true
        }
    }
     
    export default new Event()


    A页面

    import event from '../../utils/event'

    onShow(){ 

        event.on('classifyId',(classifyId)=>{

                1.  监听B页面返回的值

                2.  执行刷新xxx

             })

        }

    }

    B页面

    import event from '../../utils/event'


    onBack(){

    event.set('classifyId',{})

         wx.navigateBack({ delta:1 })

    }

     

    2018-11-29
    有用
    回复
  • 再见,电脑崽
    再见,电脑崽
    2018-11-28

    关键是看你onShow里数据处理逻辑怎么写的。

    2018-11-28
    有用
    回复 10
    • 2018-11-28


      onShow就是直接这样重新获得列表

      2018-11-28
      回复
    • 再见,电脑崽
      再见,电脑崽
      2018-11-28回复

      getTeamList里又是怎么写的


      2018-11-28
      回复
    • 2018-11-28回复再见,电脑崽


      现在是没有分页的

      2018-11-28
      回复
    • 再见,电脑崽
      再见,电脑崽
      2018-11-28回复

      你用concat连接的,肯定第二次执行的时候就会重复列表了。

      onShow里这么写:

      onShow: function() {
          this.setDta({
              teamList: [],
              lastPage: 1
          })
          this.getTeamList()
      }


      2018-11-28
      回复
    • 2018-11-28回复再见,电脑崽

      好的,现在就是这样处理的,但是以后有分页了就不能这样处理了


      2018-11-28
      回复
    查看更多(5)
  • 2018-11-28

    是执行了的,但是之前的列表还在,又重新加载了一个新的列表


    2018-11-28
    有用
    回复
  • 后米米米米
    后米米米米
    2018-11-28

    你在A页面的onShow()中,打印一下看看。这个页面方法在回退之后应该是会执行一次的

    2018-11-28
    有用
    回复 2
    • 2018-11-28

      怎么判断是返回的页面呢?


      2018-11-28
      回复
    • 王妙端
      王妙端
      2019-10-09
      我也碰到这个问题  开发者工具下是不会出现这个问题 手机端甄姬就出现了
      2019-10-09
      回复
登录 后发表内容