首页 > 其他分享 >uni自定义onBackPress事件

uni自定义onBackPress事件

时间:2023-10-05 22:34:35浏览次数:39  
标签:return 自定义 onBackPress isConfirm uni false true

onBackPress函数return非true以外的值都会执行默认的返回行为,只有return true才不会执行返回事件,所以在执行自定义事件时一定要返回true

data() {
            return {
                isConfirm:false, //处理返回逻辑
            };
        },
methods:{
    onBackPress() {
            if(this.isConfirm == false)
            {
                uni.showModal({
                    content: '数据尚未保存,你确定要返回吗?',
                    success:  res => { // 一定要保证this的指向问题,否则会导致无限的弹出modal,可以考虑用that保存this指针或是使用箭头函数
                        if (res.confirm) 
                        {
                            this.isConfirm = true
                            uni.navigateBack() //navigateBack会再次执行onBackPress事件,所以在进入函数的时候我们加了isConfirm来判断是否执行自定义的事件
                        } 
                    }
                })
                return true
            }
            else
                return false
           }
}

值得一提的是这个函数不能使用async await,否则会导致弹出moadl后就没有后面的返回动作

//错误示例
data() {
            return {
                isConfirm:false, //处理返回逻辑
            };
        },
methods:{
    async onBackPress() {
            if(this.isConfirm == false)
            {
                let [,res]  = await uni.showModal({ content: '数据尚未保存,你确定要返回吗?})
                 if (res.confirm)
                 {
                        this.isConfirm = true
                        uni.navigateBack()
                        return true
                 }
                 else             
                    return false
            }
}

作者:扶不起的蝌蚪
链接:https://www.jianshu.com/p/2ccdc585e32e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:return,自定义,onBackPress,isConfirm,uni,false,true
From: https://www.cnblogs.com/cn-oldboy/p/17744047.html

相关文章

  • 自定义异常类
    继承runtimeexception可以不处理异常:packagecom.example.emos.wx.exception;importlombok.Data;@DatapublicclassEmosExceptionextendsRuntimeException{privateStringmsg;privateintcode=500;publicEmosException(Stringmsg){super......
  • chisel安装和使用+联合体union的tagged属性+sv读取文件和显示+sv获取系统时间+vcs编译
    chisel安装和使用sbt:scalabuildtool,是scala的默认构建工具,配置文件是build.sbt。mill:一个新的java/scala构建工具,运行较快,与sbt可以共存,配置文件是build.sc。chisel的安装可以参考这篇文章。安装过程务必联网,而没有联网情况下的安装,按照其它的说明,如移动缓存文件等,并无法正常......
  • c# winfom从0学习开发开发OA、BPM工作流程与自定义表单系统(二)部门树形结构和下拉框的
    c#winfom从0学习开发开发OA、BPM工作流程与自定义表单系统(二)部门树形结构和下拉框的结构设计 具体的代码usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem......
  • CSS 实现 table 表头固定 tbody 显示垂直滚动条并自定义滚动条样式
    一、最终效果图 二、关键代码html代码:<divclass="table_info"><tableborder="0"cellspacing="0"cellpadding="0"style="width:100%;"><thead><tr><th>项目账号</th&g......
  • uniapp微信小程序如何处理input输入空格问题?
    第一种方法用input组件自带的@input事件使用@input事件绑定变量用trim修剪掉前端和末尾的空格后用replace替换空格为空把处理过的值赋给自己<inputtype="text"class=""v-model="certNo"placeholder="请输入您的证书编号"@blur="certNo=certNo.trim().replace(/\s+/g,''......
  • uniapp微信小程序如何处理input输入空格问题?
    第一种方法用input组件自带的@input事件使用@input事件绑定变量用trim修剪掉前端和末尾的空格后用replace替换空格为空把处理过的值赋给自己<inputtype="text"class=""v-model="certNo"placeholder="请输入您的证书编号"@blur="certNo=certNo.trim().replace(/\s+/g,''......
  • Unix/Linux系统编程第七八章
    第七章文件操作7.1文件操作级别文件操作分为五个级别(1)硬件级别:fdisk:将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。(2)操作系统内核中的文件系统函数:每个操作系统内核均可为基本文件操作提......
  • The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online (The 2nd Universal Cup
    The2018ACM-ICPCAsiaQingdaoRegionalContest,Online(The2ndUniversalCup.Stage1:Qingdao)J-PresstheButton\(1\leqa,b,c,d\leq10^6\)题解容易发现存在循环节,每次位于\(gcd(a,c)\)的倍数的位置所以我们考虑处理一个循环节内的情况如果\(v\le......
  • 自定义输入内容样式
    前言好久没来园子写文章了!......
  • uniapp项目实践总结(二十七)苹果应用商店上架教程
    导语:之前介绍了如何打包一个苹果安装包文件,如果想要上架苹果ios应用商店,那么就来这里学习一下方法吧。目录准备材料上架步骤审核事项准备材料基本信息构建版本:需要一个ipa格式安装包;logo:你应用的logo图标;应用名称:名称经过审核后才会显示在AppStore中;应用......