爱好编程
爱好编程
  • 发布:2020-12-27 22:39
  • 更新:2021-01-04 12:02
  • 阅读:1281

给onBackPress设置同步(async)的情况下,无法返回上一页

分类:uni-app

已参考文档:https://ask.dcloud.net.cn/article/35120
依照官方的文档确实可以实现,但有同步需求所以添加了同步关键字,然后无法返回
无法判断是否有语法错误,请指正


2020-12-27 22:39 负责人:无 分享
已邀请:
chenli

chenli

参考一下

  data() {  
    return {  
      wv: null,  
      isBack: false,  
    };  
  },  

  onBackPress(options) {  
    if (options.from === 'backbutton' && !this.isBack) {  
      // 异步事件处理  
      this.wv.canBack(({ canBack }) => {  
        if (canBack) {  
          this.wv.back();  
        } else {  
          this.isBack = true;  
          uni.navigateBack();  
        }  
      });  
      return true;  
    }  
    return false;  
  },  
  • 爱好编程 (作者)

    十分感谢,已经解决

    2020-12-28 20:42

  • Enochjdy

    这个this.isBack思路太关键了,我还以为是异步导致的问题,原来是机制就是这样。赞

    2021-03-29 15:58

  • j***@163.com

    好用,

    2021-11-01 11:06

chenli

chenli

onBackPress接收的返回值需要是Boolean

深海智行

深海智行 - 专注前端培训

查了一下字典,async 意思是异步

  • 爱好编程 (作者)

    多谢指正,还有就是我的标题是设置同步(async),意思是利用async关键词将方法设置同步并不是字面意思,如果有时间的话可以去百度一下“vue async同步请求”,最好不要光查字典

    2021-01-22 22:33

  • 深海智行

    回复 爱好编程: 其实我说查字典,是想告诉你 async 就是异步,不会转成同步,无论其功能还是字面意思都是异步。

    2021-01-25 11:25

  • 爱好编程 (作者)

    我当时的需求是把一个异步的方法转成同步的,因为其他方法需要调用这个方法,请问一下,如果在vue里async关键词不能将异步转为同步,是否还有其他方法,我刚学uni而且vue基础基本没有,了解的也比较片面

    2021-01-31 14:03

  • 深海智行

    回复 爱好编程: 建议你分开成两个方法,你加了async之后,把原本同步的方法onBackPress反而转成了异步的方法,导致原来的功能失效。

    2021-02-01 11:40

该问题目前已经被锁定, 无法添加新回复