收藏
回答

wx.showLoading在EventChannel.emit的方法中使用不显示?

页面b调用acceptDataFromOpenedPage方法后关闭并回到页面a,页面a请求数据但是 wx.showLoading() 并不会显示。是因为页面切换导致的,还是别的什么原因呢?如何可以解决这个问题?

页面a

wx.navigateTo({
  url: 'b',
  events:{
    acceptDataFromOpenedPage: data => {
        wx.showLoading({title: '加载中'})
        this.fetchData()
    }
  }
})


页面b

const eventChannel = this.getOpenerEventChannel();
eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'});
wx.navigateBack()
回答关注问题邀请回答
收藏

2 个回答

  • 茜茜又困了🐽
    茜茜又困了🐽
    2022-08-19

    写个complete回调,看看回调信息是什么

    2022-08-19
    有用 1
    回复 4
    • X.
      X.
      2022-08-19
      回调是成功的 但是页面不显示
      2022-08-19
      回复
    • 茜茜又困了🐽
      茜茜又困了🐽
      2022-08-19回复X.
      我这里能显示,未复现,回调信息也是成功的
      你尝试切换基础库版本试试
      2022-08-19
      回复
    • X.
      X.
      2022-08-19
      wx.navigateBack()提前到eventChannel.emit调试器可以,真机loading出现在b页面
      2022-08-19
      回复
    • 茜茜又困了🐽
      茜茜又困了🐽
      2022-08-19回复X.
      把wx.navigateBack写在方法的最后调用
      在调用wx.showLoading时,借助wx.nextTick这个api
      2022-08-19
      回复
  • 跨商通
    跨商通
    2022-08-20

    1、是的,因为页面切换导致的。

    2、我一般会加个setTimeout。结果证明1的原因。

    2022-08-20
    有用
    回复
登录 后发表内容