收藏
回答

自定义组件如何刷新?

在A页面中使用自定义组件,组件是个列表,在B页面添加数据后,跳转到A页面,如何让自定义组件的数据刷新?

自定义组件的数据是在 这个位置请求的

  lifetimes: {
    created: function () { },
    attached: function () {
      let member_id = getApp().globalData.member_id
      let token = getApp().globalData.token
      $api.getCustomerByStaff({
        member_id: member_id,
        token: token,
        page: 1,
        limit: 10,
        category: 2,
      }).then((res) => {
        this.setData({
          list: res.data.data
        })
      })
    },
    // 在组件实例被从页面节点树移除时执行
    detached: function () { },
  },

本来使用的刷新方法是B页面跳转到 A页面时执行A页面的onLoad()

B页面跳转A页面
wx.navigateBack({
          delta: 1,
          success: function (e) {
                var page = getCurrentPages().pop();
                if (page == undefined || page == null) return;
                page.onLoad();
	}
}
A页面的onLoad
  onLoad(options) {
    this.setData({
      active:0 //将自定义组件隐藏
    })
    wx.showLoading({
      title'加载中...',
    })
    setTimeout(() => {
      this.setData({
        active:1//将自定义组件显示
      })
      wx.hideLoading({})
    }, 1000);
  },
这样就组件数据就刷新了(也就是 执行了自定义组件中的lifetimes中的attached)

但是开发者工具上好使(测试机型为苹果),真机调试就不行(真机调试是安卓)

还有什么好方法吗?求各位大佬指点!

(如果有大佬注意到了,我这个在组件中还有分页效果,有好的上拉加载更多方法,小弟我也需要 (T_T) )


回答关注问题邀请回答
收藏
登录 后发表内容