关于react的Tabs组件中TabPane的bug
今天解决了我自认为一个很不起眼的Bug。
我的Tabs下面有5个tabPane,并且这几个tabPane共用了一个search组件,今天遇到了一个bug,就是这几个组件使用公共查找组件的时候,前一个组件的值会影响下一个组件的值。
找了半天发现,原来我应该在父组件Tabs中定义一个useState的状态status,当Tabs执行callback的时候,会有一个key,就把这个key存在status里面,然后当status等于每个组件对应的key时再加载相对应的组件。
不然TabPane会多加载,这样数据就乱了。
写一个代码片段
<Tabs onTabClick={callback}>
<TabPane key='1'>
{status==='1' <ComponentA / > :null }
</TabPane>
<TabPane key='2'>
{status==='2' <ComponentB / > :null }
</TabPane>
</Tabs>
const [status,setStatus]=useState('');
const callback=(key)=>{
setStatus(key)
}
关于react的Tabs组件中TabPane的bug的更多相关文章
- Element Tabs 组件中使用 ve-histogram组件渲染不出来(已解决)
Element Tabs 组件中使用 ve-histogram组件渲染不出来 发现问题提了issue,饿了么前端“西瓜”同学很快做了回复,饿了么大前端团队有沉淀很专业,赞. tip: GitHub 的 ...
- React技巧之组件中返回多个元素
原文链接:https://bobbyhadz.com/blog/react-return-multiple-elements 作者:Borislav Hadzhiev 正文从这开始~ fragment ...
- iview使用之怎样通过render函数在tabs组件中添加标签
在实际项目开发中我们通常会遇到一些比较'新颖'的需求,而这时iview库里往往没有现成可用的组件示例,所以我们就需要自己动手翻阅IviewAPI进行自定义一些组件,也可以说是将iview库里的多种组件 ...
- react 不能往组件中传入属性的值为 undefined
在使用 andt design 的时候遇到个需求,需要清除 Select 组件选中后的值,让它变成什么都没选中,显示 placeholder 刚开始以为设置为 null 即可,结果发现设置为 null ...
- react:在一个组件中调用别的组件中的方法
先介绍一下要解决的问题:react中一个组件A和一个组件B,其中B是被connect(connect是redux中的方法)包装过的组件,包装成BContainer,A和BContainer的关系是兄弟 ...
- react之四种组件中DOM样式设置方式
1.行内样式 想给虚拟dom添加行内样式,需要使用表达式传入样式对象的方式来实现 行内样式需要写入一个样式对象,而这个样式对象的位置可以放在很多地方 例如:render函数里.组件原型上.外链js文件 ...
- React Hooks中父组件中调用子组件方法
React Hooks中父组件中调用子组件方法 使用到的hooks-- useImperativeHandle,useRef /* child子组件 */ // https://reactjs.org ...
- element UI排坑记(一):判断tabs组件是否切换
之所以将这个问题列在排坑记之中,是因为官方组件的一个属性颇有些隐蔽,这个问题曾经折腾了本人较多时间,始终思维固着,且使用搜索引擎也不容易搜索到答案,故记之.然而实际解决却是相当简单的. 一.问题描述 ...
- 规避 React 组件中的 bind(this)
React 组件中处理 onClick 类似事件绑定的时候,是需要显式给处理器绑定上下文(context)的,这一度使代码变得冗余和难看. 请看如下的示例: class App extends Com ...
- react组件中的constructor和super小知识
react组件中的constructor和super小知识 1.react中用class申明的类一些小知识 如上图:类Child是通过class关键字申明,并且继承于类React. A.Child的类 ...
随机推荐
- 如何用虚拟机VMware Workstation安装CentOs-7
因为我是先安装虚拟机的,再安装CentOs的.在此建议大家先安装CentOs-7再安装虚拟机,比较方便. 1.首先进入centos官方网站下载,网站如下:https://www.centos.org/ ...
- python2 selenium
参考blog: https://www.cnblogs.com/xiaozhiblog/p/5378723.html http://www.cnblogs.com/fnng/ 一.项目结构介绍 下面逐 ...
- 【omr】linux配置omr识别项目moonlight环境
最近又做了第n次moonlight的环境配置 moonlight是相对成熟的omr系统 这里记录环境配置的基本步骤 (总的来说主要是用conda新建符合程序要求的python版本 然后装好bazel和 ...
- CentOS7 使用Mariadb 安装 hive
前提:已成功安装hadoop ──────────1. MariaDB安装 ──────────第一步 参照以下内容安装MariaDBhttps://www.linuxprobe.com/chapte ...
- win10下Word点击链接跳转,提示“由于本机的限制,该操作已取消”
Word按住Ctrl点击链接进行跳转,提示"由于本机的限制,该操作已取消,请联系管理员" 网上很多,修改注册表 这边要说的是,修改重启word ,还不行的解决方法:点开任务管理器- ...
- SpringBoot——实现WebService接口服务端以及客户端开发
参考:https://blog.csdn.net/qq_43842093/article/details/123076587 https://www.cnblogs.com/yinyl/p/14197 ...
- 03-Spring使用注解方式注入
基于注解的DI注入 1.导包 环境搭建:导入aop包(spring-aop-4.1.6.RELEASE.jar) 2.创建类 3. 创建spring.xml配置文件(必须在src目录下) 该配置文件与 ...
- 查看服务器cpu 核心数
cpu相关信息所在文件是 /proc/cpuinfo 物理cpu数 # grep "physical id" /proc/cpuinfo | sort | uniq | wc -l ...
- C++/Qt网络通讯模块设计与实现(三)
上一节给大家从源码级别分析了SNetClient网络客户端的实现过程,详见C++/Qt网络通讯模块设计与实现(二),并给大家留了一个疑问,即引入SNetClientRunning类是为了解决什么问题 ...
- Kafka 消息送达语义
更多内容,前往IT-BLOG 消息送达语义是消息系统中一个常见的问题,主要包含三种语义:[1]At most once:消息发送或消费至多一次:[2]At least once:消息发送或消费至少一次 ...