收藏
回答

二级页面信息改变的同时,如何实时更新一级页面信息呢?非常困惑,求解答,谢谢!

问题模块
API和组件

我在二级页面填写了个人信息保存,回到一级页面还是最初的页面信息。我是通过onShow()事件进行刷新页面信息的。但是会出现一个问题:每次进入一级页面会先出现旧的信息页面,等一秒才会执行onShow()事件的刷新,这个会觉得很不舒服。怎么实现信息实时的更新呢?

我希望,可以二级信息页面改变,回到一级信息页面,不出现旧的信息,而是直接出现新的信息页面。

希望得到解答,谢谢啦!!!

情人节快乐!

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

7 个回答

  • Alan
    Alan
    2017-02-14

    不是有onload吗?

    2017-02-14
    赞同
    回复
  • 天下雪|回溯
    天下雪|回溯
    2017-02-15

    参考:http://www.wxapp-union.com/portal.php?mod=view&aid=859

    2017-02-15
    赞同
    回复
  • 月老
    月老
    2017-02-15

    首先,通过wx.navigateTo打开第二个页面,在二级页面填写个人信息保存填写的信息到公共变量(可以在app.js里面定义一个)里面,再通过wx.navigateBack,回到一级页面,在onShow时间里面执行setData即可更新,刷新的时间与要更新的data数据大小有关,我这边测试过,在onShow时间里面执行setData,我的data数据有160KB的样式,会有1-2秒的卡顿。 //一级页面

    chooseArea:function(e){
          wx.navigateTo({
            url:"/pages/common/area/index"
          })
      },
      onShow: function () {
          this.setData({
              area3:{
                checked:app.globalData.area3.checked,
                inputData:app.globalData.area3.inputData
              }
          });
      },

    //二级页面

    trueArea:function(e){
            var time=e.timeStamp;
            if(!app.validEvent(e,500)){
                return;
            }
            var _this=this;
            app.globalData.area3=_this.data;
            wx.navigateBack()
        },


    2017-02-15
    赞同
    回复
  • 月老
    月老
    2017-02-15

    onload只会加载一次,所有最好是在onshow里面做更新视图的操作

    2017-02-15
    赞同
    回复
  • 荒草
    荒草
    2017-02-15

    在页面显示的时候加载就会更新了,

    2017-02-15
    赞同
    回复
  • 心心情
    心心情
    2017-02-15

    就是觉得onShow会有你说的卡顿现象,想要改进。。

    2017-02-15
    赞同
    回复
  • 心心情
    心心情
    2017-02-15

    谢谢朋友:天下雪。我看了链接文章,的确给我提供了一个思路,只是还是有问题,没有解决。使用getCurrentPages()会涉及一个页面跳转的顺序问题。如果通过不同途径进入相同的页面,比如A跳到D页面,有两条途径:1.A->B->D;2.A->B->C->D.这样子就很难利用getCurrentPages()函数,实时更新数据了。

    总之,非常感谢!

    2017-02-15
    赞同
    回复