小程序action-sheet结合自定义tabbar显示

news2024/11/27 8:29:41

请添加图片描述
要实现此效果,遇到的问题:背景在电脑端调试的情况正常的情况下,手机端点击事件工单,返回回来的时候action-sheet卡住在屏幕上,点击遮罩层都不消失。更奇怪的是 这种情况并不是每次发生,而是有时候发生,有时候正常。

我思考问题出现在action-sheet的问题身上 在t-design中找了好久控制显示和隐藏的方法。但是都没有用处。最后解决方案如下
在写的自定义bar中

<!--custom-tab-bar/index.wxml-->
<view class="tab-bar">
  <view wx:for="{{list}}" wx:key="index" class="tab-bar-item {{item.bulge?'bulge':''}}" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab">
    <view wx:if="item.bulge" class="tab-bar-bulge"></view>
    <image class="image" src="{{selected == index ? item.selectedIconPath : item.iconPath}}"></image>
    <!-- <view  wx:if="{{item.text}}" style="color: {{selected === index ? selectedColor : color}}" class="tab-bar-view">{{item.text}}</view> -->
    <view class="tab-bar-view" style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</view>
  </view>
</view>

<!-- <view>
  <t-action-sheet 
  id="childComponent" show-cancel="false" style="position: absolute; top: 0; z-index: 999;"></t-action-sheet>
</view> -->
<!-- <view wx:if="{{showvisble}}"> -->
  <t-action-sheet 
  id="childComponent" visibleFlag="true"></t-action-sheet>
<!-- </view> -->

以上是找的圆形tabbar
可以看到我尝试了用view包裹组件 控制t-action的显示 但是发现在js代码中由于我让action-sheet显示的方法 是父组件获取子组件的id值.子组件的方法 在加了view之后 调用action-sheet 显示的方法失效了 因此我放弃了这个想法 但是 问了很厉害的同事之后 解决了!她操作的我想不通 但神奇的解决问题了 特此记录一下希望我能在记录的时候想通。

   if (url === '/pages/index3/index3') {
        this.selectComponent("#childComponent").handleAction()
      } else {
        wx.switchTab({
          url
        })
      }```js代码


解决方案如下

在她更改了t-design提供的本身的代码 使用wx-if来控制它的显示

```javascript
<t-action-sheet class="t-icon-system-regulation popur-sheet"   style= "color: #3f4146;" id="t-action-sheet"
 bind:selected="handleSelected"
 bind:close="handleclose"
 wx:if="{{visibleFlag}}"
 show-cancel="true"
 cancelText="关闭" />

wx:if="{{visibleFlag}}"这段代码在我的脑海里是不敢和不觉得能实现的 但是能够作用 之前在我的印象里 t-design内部的代码只有api提供的字段能够生效但是 没想到wx:if也能生效

import ActionSheet, { ActionSheetTheme } from 'tdesign-miniprogram/action-sheet/index';

const firstGrid = [
  {
    label: '事件工单',
    icon: 'assignment',
    tickType: '1',
  },
  {
    label: '配置工单',
    icon: 'file-setting',
    tickType: '3',
  },
  {
    label: '变更工单',
    icon: 'refresh',
    tickType: '4',
  },
  {
    label: '报告工单',
    icon: 'system-regulation',
    tickType: '5',
  },
  {
    label: '计划任务',
    icon: 'fact-check',
    tickType: '6',
  },
  {
    label: '定时任务',
    icon: 'alarm-add',
    tickType: '7'
  },

];

Component({
  attached(){
    this.setData({
      visibleFlag:this.properties.visibleFlag1
    })
  },

  properties(){
    visibleFlag:Boolean},
  data:{
    showActionSheetFlag:false,
    visibleFlag:false,
  },

  methods: {
    handleAction() {
      this.setData({
        visibleFlag:true
      })
      ActionSheet.show({
        theme: ActionSheetTheme.Grid,
        selector: '#t-action-sheet',
        context: this,
        items: firstGrid,
      });
      
    },
    handleclose(){
      console.log('关闭');
      this.setData({
        visibleFlag:false
      })
    },
    
    handleSelected(e) {
      console.log(e.detail);
      var ticketType = e.detail.selected.tickType
      console.log("ticketType"+ticketType);
      
      this.handleclose()
      if(e.detail.selected.tickType === '6'){
        wx.navigateTo({
          url: '/pages/newPlanOrder/newPlanOrder?ticketType='+ ticketType,
        })
      }else if (e.detail.selected.tickType === '1' || '3' ||'4'||'5'){
        wx.navigateTo({
          url: '/pages/newOrder/newOrder?ticketType='+ ticketType,
        })
      }
    },
  },
});

可以看到 父组件给子组件传值visibleFlag 在父组件中定义visibleFlag="true"为真 这个时候是可以显示 action-sheet的特性是即使可以显示但是不调用
ActionSheet.show({
theme: ActionSheetTheme.Grid,
selector: ‘#t-action-sheet’,
context: this,
items: firstGrid,
});
这段方法也不会显示 可能是隐藏但是存在 然后点击到tabbar的某个路由
调用子组件的方法可以可以这个时候1.父组件传visibleFlag值为ture handleAction这个方法里visibleFlag也为true 因此可以显示

在进行选择事件之后关闭掉了aciton-sheet 同时跳转界面

  this.handleclose()
      if(e.detail.selected.tickType === '6'){
        wx.navigateTo({
          url: '/pages/newPlanOrder/newPlanOrder?ticketType='+ ticketType,
        })
      }else if (e.detail.selected.tickType === '1' || '3' ||'4'||'5'){
        wx.navigateTo({
          url: '/pages/newOrder/newOrder?ticketType='+ ticketType,
        })
      }

我的误区:我想着跳转过去在关闭
在handleclose()中将visibleFlag设置成为false 这样它就消失了

我的疑惑点:直接不给渲染了重新回到tabbar页面时候点击仍然能够打开?
猜测:没什么猜测 还是想不通 可能是双重保障吧 就是让close不管用 在wx:if 人为给它关闭 至于为什么原生的不管用 wx:if我就不懂了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1216660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode34-34. 在排序数组中查找元素的第一个和最后一个位置

&#x1f517;:代码随想录:二分查找的算法讲解:有关left<right和left<right的区别 class Solution {public int[] searchRange(int[] nums, int target) {int nnums.length;int l0,hn-1;if(numsnull){return null; }if(n0){return new int[]{-1,-1}; }if(target&l…

ROS 学习应用篇(七)ROS中的坐标变换管理之tf初探

坐标变化是机器人中很重要的内容&#xff0c;但是要是概括下来无非就是旋转和平移矩阵。 小海龟跟随实验 做的是两个小海龟之间的跟随&#xff0c;其实就相当于视觉设备和本体设备见有一定的位置差在ros平台下tf坐标变化的实验 首先安装海龟tf变换包 新开终端输入 sudo apt…

杨辉三角00

题目链接 杨辉三角 题目描述 注意点 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和 解答思路 从第一行开始&#xff0c;根据前一行计算该行的值 代码 class Solution {public List<List<Integer>> generate(int numRows) {List<List<…

Mybatis的Mapper接口传递多个参数的时候必须要加@Param注解吗?

答案是&#xff1a;不一定&#xff0c;取决于mybatis的版本、jdk的版本和javac的编译选项。 测试代码 Maven依赖&#xff1a; <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId>…

经典/启发式/改进启发式算法应用于机器人路径规划

路径规划是移动机器人导航规划中的一个十分重要且关键的研究课题。 移动的机器人总是在动态、复杂和不可控的环境中工作&#xff0c;比如对核电站的检查和变电站的检查。然而&#xff0c;复杂的动态工作环境要求移动的机器人能够调整其运动路线&#xff0c;以自主完成任务。使…

【AI视野·今日Sound 声学论文速览 第三十四期】Thu, 26 Oct 2023

AI视野今日CS.Sound 声学论文速览 Thu, 26 Oct 2023 Totally 9 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Dynamic Processing Neural Network Architecture For Hearing Loss Compensation Authors Szymon Drgas, Lars Bramsl w, Archontis Poli…

多标签页文件管理器 - Win系统

多标签页文件管理器 - Win系统 前言My Files-X Free360文件夹升级Win11 前言 Win10系统自带的文件管理器不支持多标签页功能&#xff0c;本文推荐几款多标签页文件管理器&#xff0c;可以在一个文件管理器窗口中打开多个标签页。 My Files-X Free 此文件管理器支持多标签页&…

Linux友人帐之网络编程基础邮件服务器与DHCP服务器

一、邮件服务器概述 1.1邮件服务基础 邮件服务器是一种计算机程序&#xff0c;它通过电子邮件协议接收、存储、处理和发送电子邮件。邮件服务器可以与电子邮件客户端程序&#xff08;如Outlook、Thunderbird等&#xff09;或Web邮件界面&#xff08;如Gmail、Outlook.com等&am…

非常经典的一道SQL报错注入题目[极客大挑战 2019]HardSQL 1(两种解法!)

题目环境&#xff1a; 没错&#xff0c;又是我&#xff0c;这群该死的黑客竟然如此厉害&#xff0c;所以我回去爆肝SQL注入&#xff0c;这次&#xff0c;再也没有人能拿到我的flag了 做了好多这个作者出的题了&#xff0c;看来又要上强度了 判断注入类型 username&#xff1a;a…

CSAPP第四章:Y86 SEQ(指令顺序执行)的硬件结构

SEQ硬件结构的抽象表示。 程序计数器放在寄存器中(左下角&#xff0c;起点)。先向上&#xff0c;再向右 取指&#xff1a;将程序计数器寄存器作为地址&#xff0c;指令存储器读取一个指令的字节&#xff0c;PC增加器计算valP(程序计数器增加后的值)。 解码&#xff1a;寄存器…

产品经理如何独立从0-1着手甲方项目,或者负责一个产品?

作为产品经理&#xff0c;独立从0到1着手甲方项目或负责一个产品是一项重要的任务。以下是一些步骤和建议&#xff0c;可以帮助产品经理成功地完成这个任务。 1. 研究市场和竞争对手&#xff1a;在开始任何项目之前&#xff0c;产品经理应该对市场进行深入研究&#xff0c;并了…

PyTorch:GPU的使用

在深度学习领域&#xff0c;神经网络模型训练所需的计算量巨大&#xff0c;这就对计算资源提出了高要求。为了处理这一问题&#xff0c;图形处理器&#xff08;GPU&#xff09;被引入到深度学习中&#xff0c;其并行计算能力可以极大加速神经网络的训练过程。PyTorch作为一款出…

【数据分享】1961—2022年全国范围的逐日降水栅格数据

降水数据是我们在各项研究中最常用的气象指标之一&#xff01;之前我们给大家分享过来源于国家青藏高原科学数据中心发布的1901-2022年1km分辨率逐月降水栅格数据以及1901-2022年1km分辨率逐年降水栅格数据&#xff08;均可戳我跳转&#xff09;&#xff01;很多小伙伴拿到数据…

【Qt之QWizard问题】setPixmap()设置logo、background、watermark无效不显示解决方案

问题原因&#xff1a; 使用QWizard或者QWizardPage设置像素图&#xff0c;结果设置完不显示效果。 设置示例&#xff1a; setPixmap(QWizard::WatermarkPixmap, QPixmap("xxx/xxx/xxx.png"));setPixmap(QWizard::BackgroundPixmap, QPixmap("xxx/xxx/xxx.png&…

【星海出品】云存储 ceph

https://ceph.com/en/ 建议运行带有两个网络的Ceph存储集群&#xff1a;公共&#xff08;前端&#xff09;网络和集群&#xff08;后端&#xff09;网络。为了支持两个网络&#xff0c;每个Ceph节点都需要有多个NIC。 Monitor 一个Ceph集群需要多个Monitor组成的小集群&#x…

【C++】【Opencv】cv::GaussianBlur、cv::filter2D()函数详解和示例

本文通过函数详解和运行示例对cv::GaussianBlur和cv::filter2D()两个函数进行解读&#xff0c;最后综合了两个函数的关系和区别&#xff0c;以帮助大家理解和使用。 目录 cv::GaussianBlur&#xff08;&#xff09;函数详解运行示例 filter2D()函数详解运行示例 总结两个函数联…

关于 Git 你了解多少?

1. 什么是Git? Git 是一个版本控制系统&#xff0c;由林纳斯托瓦兹创建。它旨在管理项目代码的更改&#xff0c;以便团队成员可以协作开发和维护代码库。Git 可以让用户跟踪代码的更改、回滚错误的更改、合并代码等。Git 还具有分支和标签的功能&#xff0c;使得团队成员可以在…

002 OpenCV dft 傅里叶变换

目录 一、傅里叶变换 1.1 傅里叶变换概念 1.2 opencv中傅里叶变换 二、实验代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、傅里叶变换 2.1 傅里叶变换概念 傅里叶变换&#xff08;Fourier Transform&#xff09;是一种…

手把手教你搭建属于自己的快递小程序

在数字化时代&#xff0c;小程序已经成为各行各业连接用户、提供服务、创造价值的重要工具。其中&#xff0c;快递寄件小程序因其实用性和广泛的需求&#xff0c;成为很多企业和开发者关注的焦点。本文将详细介绍如何快速创建快递寄件小程序&#xff0c;以及如何利用它实现盈利…

Zabbix钉钉机器人告警

目录 一.在钉钉群里添加机器人 二.配置钉钉告警脚本 1.安装python依赖模块python-requests 2.配置钉钉告警配置脚本zabbix_ding.conf 3.创建告警日志并且授权。 4.配置钉钉告警执行脚本dingding.py 5.测试 三.配置zabbix告警 1.创建媒介 2.给用户添加报警媒介 3.配置…