antd pro的 select 滚动条在页面有其它组件频繁刷新时会自动回到顶部

这个问题估计很少有人遇到,还是想问下,万一有大侠遇到过呢。问题是,同一个页面布局分为上下两部分,上面为查询条件,包含有Select组件;下面为展示查询结果的Table。
1.当Table为静态内容时,即查询结果出来就不变了,select组件的滚动条拖动没问题,很流畅。
2.当Table内容每秒根据websocket推送内容刷新时,这个select组件的滚动条就反应很迟钝,经常拖不动,当鼠标移到外部再进来或者在拖不懂滚动条时,滚动条的位置会回到顶部。注:这个select组件此时没有任何的重新渲染触发,数据在操作其它关联组件时才会渲染,在本select组件操作期间是不会更新自己的数据的。
3.修改了zIndex也无效,且select组件在页面上也是浮在上面的,显示的内容会遮盖Table组件的内容,虽然Table组件的内容在不端刷新,都会被select组件遮盖。
image.png

阅读 3.8k
1 个回答

根据你的描述写了一个demo(antd的版本为4.16.11),没有出现你描述的问题,你可以对问题继续补充,看我是否漏掉了其他必要条件,或者修改demo到出现该问题,demo是每60ms刷新一次table数据,应该可以符合题意,demo地址-> https://stackblitz.com/edit/r...

补充: 怀疑是低版本的问题,所以我又用低版本做了一个测试,戳这里:https://stackblitz.com/edit/r...,确实出现了题主的问题,你可以去他们低版本提BUG,或者升级到高版本,或者费点时间看看他们源码是怎么会出现这个问题的,4.x在滚动条上改动了什么,毕竟4.x解决了

再补充:我之前也是用的3.x,在写table的时候同样遇到了一个不常见的问题,就是当我把右侧操作项fixed之后,需要在操作按钮上再绑定一个popover,这时候,如果打开popover就会出现两个,因为它fixed的实现逻辑是,又写了一遍操作项并固定覆盖在原来的操作项上面,也就是我一绑定popover,他内部实现逻辑就会把上下两个按钮都绑定上popover然后就出现了两个,我想了好久怎么处理(因为老大不让升级antd,4.x没有这个问题),就是在popover上绑定getPopupContainer参数,通过返回的父节点的class判断到底是下面被隐藏的按钮,还是上面固定的按钮……

共勉(#^.^#)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题