antd:ConfigProvider+getPopupContainer解决筛选框遮挡问题(及其他浮层问题)

news2024/11/20 9:29:58

  • 一. 问题场景
  • 二. 解决方案
  • 三. 代码示例

一. 问题场景

当表格高度太低(下图业务场景出现在数据条数太少时),column中有筛选框,可能会出现筛选框被遮挡的问题:
在这里插入图片描述

这是因为filter的下拉菜单渲染在table的表头栏,而表头内容只能渲染在table的content高度以内
在这里插入图片描述

二. 解决方案

我们可以利用antd官方给出的方法来解决:

  • getPopupContainer方法来更改筛选框渲染挂载的元素
    在这里插入图片描述

举例:

<Select getPopupContainer={node => node.parentNode || document.body} />

当有弹出框(Select, Tooltip, Menu 等等)渲染父节点时,可以直接在组件上使用该方法


  • ConfigProvider全局化配置
    ConfigProvider 使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效。
    可以直接包在组件外, 内部所有浮层都会生效

三. 代码示例

table的columns中有filters筛选框,原代码:

{
  title: '数据库来源',
  key: '',
  dataIndex: '',
  ………………,
  filters: [
    { text: 'zeus', value: 'zeus' },
    { text: 'garm', value: 'garm' },
    { text: '其他', value: 'direct' },
  ],
  onFilter: (value, record) => {...}
},
return (
    <Table>
        dataSource={list}
        columns={columns}
        ...
    />
)

此时下拉框是内部封装,所以getPopupContainer不能直接挂载在下拉框组件上。

思路:在table外包一层元素,并将筛选框浮层挂载在该元素上
解决方案一:不使用原有封装,自己实现filterDropdown的render,再挂载getPopupContainer
解决方案二:(推荐)使用ConfigProvider+ getPopupContainer

const tableRef = useRef()

return(
    // 使用ConfigProvider全局地将内部浮层元素挂载到div上
    <ConfigProvider getPopupContainer={() => tableRef.current}>
        <div ref={tableRef}>
            <Table>
               dataSource={list}
                columns={columns}
                ...
            />
        </div>
    </ConfigProvider>
)

效果图:
在这里插入图片描述

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

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

相关文章

运算放大器的理解与应用

运算放大器的理解与应用 运算放大器简称运放&#xff0c;由于早期应用于模拟计算机中&#xff0c;用以实现数学运算&#xff0c;故得名“运算放大器”。主要是用在模拟电路中&#xff0c;比如放大器、比较器、模拟运算器&#xff0c;是电子工程师经常要用到的器件。运算放大器…

145646-22-6|表位肽EQKLISEEDL

c-Myc Peptide Trifluoroacetate 是一种合成肽&#xff0c;与人 c-myc 蛋白的 C-末端氨基酸 (410-419) 相对应&#xff0c;参与调控与生长有关的基因的转录过程。c-Myc Peptide Trifluoroacetate is a synthetic peptide corresponding to the C-terminal amino acids (410-419…

开源共建 | 中国移动冯江涛:ChunJun(原FlinkX)在数据入湖中的应用

ChunJun&#xff08;原FlinkX&#xff09;是一个基于 Flink 提供易用、稳定、高效的批流统一的数据集成工具。2018年4月&#xff0c;秉承着开源共享的理念&#xff0c;数栈技术团队在github上开源了FlinkX&#xff0c;承蒙各位开发者的合作共建&#xff0c;FlinkX得到了快速发展…

Spring Security验证码配置化开发

背景 在前两篇文章中给大家介绍了Spring Security的认证流程&#xff0c;包含对项目的定制化处理&#xff0c;可以明白security的设计还是比较强大的&#xff0c;通过一系列的过滤器注册的过滤器链&#xff0c;对流程进行链式的处理。 今天介绍一种以配置器的方式处理验证码生…

Day11--配置tabBar效果

1.创建tabBar分支 我的操作&#xff1a; 1》在其根路径下按住“shift”和鼠标右键进入powerShell界面&#xff0c;然后输入创建一个分支tabBar. ****************************** ****************************** ****************************** ****************** 2.创建ta…

生产质量管理系统有哪些功能?

随着中国市场经济的快速发展&#xff0c;中国产品正经历着“中国制造”向“中国创造”的转变,在这个过程中&#xff0c;企业经营也逐渐从低成本生产管理向质量经营方向发展&#xff0c;企业已经认识到质量的重要性&#xff0c;企业对质量管理的有效性也提出了更高的要求。 作为…

【Servlet】5:详解响应对象 HttpServletResponse

目录 | 响应对象 HttpServletResponse接口 HttpServletResponse的基本概述 响应对象返回 String 给Browser & 中文乱码问题 响应对象返回 int 给Browser 响应对象 解析HTML标签后 返回给Browser 本文章属于后端全套笔记的第三部分 &#xff08;更新中&#xff09;【后…

UI和UI有什么不同,是如何协助的

UX(用户体验)和UI&#xff08;用户界面&#xff09;是一个常用的术语。然而&#xff0c;尽管有复杂的联系&#xff0c;但网页设计的两个领域是两个不同的东西。事实上&#xff0c;有可能有一个用户界面优秀但用户体验差的网站。因此&#xff0c;了解UX和UI良好的网页设计非常重…

只需要改造一下实体类,以后再也不用写SQL了

文章目录只需要改造一下实体类&#xff0c;以后再也不用写SQL了 现状分析现状示例1. 建立人员表M.T.Person表&#xff0c;包含三个字段名称&#xff0c;年龄&#xff0c;身份证。2. 新增一条数据&#xff0c;也就是插入的情况。3. 获取单条数据内容&#xff0c;也是就是根据ID获…

经济师十大专业通过人数分析!选专业有谱了!

最近&#xff0c;很多同学在后台咨询&#xff0c;哪个专业的好通过&#xff0c;自己要如何选专业…… 小编特别整理了已经公布的各省市2021年初、中级经济师各专业通过情况数据&#xff0c;给大家参考&#xff01; 2022年中级经济专业技术资格考试设《经济基础知识》和《专业知…

让学前端不再害怕英语单词(三)

前两章直通车↓↓↓ 让学前端不再害怕英语单词&#xff08;一&#xff09; 让学前端不再害怕英语单词&#xff08;二&#xff09; 由于前两章都反响强烈&#xff0c;都上了全站的热榜&#xff0c;所以今天打算把第三章也写出来 第三章我们主要讲一下css中的伪类的英语单词还有…

TResNet: ResNet改进,实现高精度的同时保持高 GPU 利用率

终于开题&#xff0c;抓紧发文&#xff0c;然后放飞​​​​​​&#xff0c;来由就是想搞一篇论文&#xff0c;但是增加了某个东西之后吧&#xff0c;速度变慢了&#xff0c;所以导师提议加个这玩意看看能不能快点。 论文题目&#xff1a;TResNet: High Performance GPU-Dedi…

深度剖析商业智能BI中的多维分析

数据在这些年的时间中&#xff0c;也逐渐成长为了个人、机构、企业乃至国家的战略资源&#xff0c;被很多人放到“新时代的石油”这一位置上。虽然这个说法也引起了一些争议&#xff0c;但更多只是讨论数据和石油的差异性&#xff0c;却并没有多少人否认数据的价值&#xff0c;…

开发速查表,一个值得每个程序员收藏的网站

在工作过程中&#xff0c;虽然我们程序员&#xff0c;主要是使用一门语言开发&#xff0c;但免不了会用到其他语言参与其他项目&#xff1b;或者很多全栈工程师&#xff0c;会参与前端的开发调试&#xff1b;总的来说&#xff0c;我们工作过程中&#xff0c;都会涉及到多门编程…

Fluent 嵌套网格(overset)功能讲解与实例操作

作者 | 张杨 在流体仿真中&#xff0c;我们经常会遇到边界运动的问题&#xff0c;如&#xff1a; 生物医疗行业中血管的运动 航空航天行业中飞行器的分离 容积泵中齿轮的相对运动 在ANSYS Fluent 17.0之前的版本中&#xff0c;我们通常采用传统的MDM&#xff08;Moving/D…

【模型训练】YOLOv7车辆和行人检测

YOLOv7车辆和行人检测 1、车辆和行人检测模型训练2、模型评估3、模型和数据集下载网盘链接1、本项目采用YOLOv7算法实现对车辆和行人检测,在几千多张车辆和行人检测中能训练得到,我们训练了YOLOv7、,所有指标都是在同一个验证集上得到; 2、目标类别数:2 ;类别名:person、…

5、网络配置

文章目录5、网络配置5.1 VMware三种模式5.1.1 桥连模式5.1.2 NAT模式5.1.3 仅主机模式5.2 查看网络IP和网关5.2.1 查看虚拟网络编辑器5.2.2 修改虚拟网卡 Ip5.2.3 查看网关5.2.4 查看 windows 环境的中 VMnet8 网络配置5.3 配置网络ip地址5.3.1 ifconfig查看网络接口配置1 基本…

Windows内核--系统调用参数验证(5.1)

内核参数验证的重要性 内核模式之所以有别于用户模式&#xff0c;在于内核模式应该是安全、可信的。用户系统调用可以传入各式各样的参数&#xff0c;可能是代码无意写错或因不预期的内存覆盖"暗地修改"参数&#xff0c;也可能是Hack有意传入&#xff0c;内核都应当妥…

【强化学习论文合集】ICRA-2022 强化学习论文 | 2022年合集(六)

强化学习&#xff08;Reinforcement Learning, RL&#xff09;&#xff0c;又称再励学习、评价学习或增强学习&#xff0c;是机器学习的范式和方法论之一&#xff0c;用于描述和解决智能体&#xff08;agent&#xff09;在与环境的交互过程中通过学习策略以达成回报最大化或实现…

生成者(建造者)模式

思考生成者模式 生成者模式就是将对象构建和对象内部构建分离 对象构建&#xff1a;手机的构建 对象内部构建&#xff1a;手机中屏幕和电池的构建 1.生成者模式的本质 生成器模式的本质:分离整体对象构建算法和对象的部件构造。 构建一个复杂的对象&#xff0c;本来就有构建的过…