wqhui
wqhui
eg: ```js const expr = Parser.parse('text != null') expr.evaluate({text:null}) ``` this will throw error
在虚拟滚动中,计算横向可展示内容的函数`getHorizontalRenderRange`中,会根据当前的列宽判断是否显示: https://github.com/alibaba/ali-react-table/blob/847cc650b5e0e30e6ea05cf3d30cd5fc5be4515a/packages/ali-react-table/src/base-table/calculations.tsx#L117-L126 但是在当前列宽过长时,也就是`当前的列宽`>`表格剩余可显示宽度`,这里的判断会直接将这列并入虚拟列,导致表格应该展示的列没有展示出来: 这里将其修改为表格上次计算存在剩余宽度,则当前列就应该显示 bug复现示例:https://codesandbox.io/s/xu-ni-lie-qing-kuang-xia-shou-lie-kuan-du-guo-chang-wu-nei-rong-zhan-shi-17ucgx
大佬,使用中发现,当列定义不是从第一列开始锁定时,后续列的锁定属性会不生效,如下图: ### 复现 该链接就可复现,[https://codesandbox.io/s/art-test-k0txv](https://codesandbox.io/s/art-test-k0txv) ### 个人分析 根据源码定位发现,当锁定不是从首列开始时,下面`for...of...` 循环中的 `break` 会中断了循环,所以锁定是必须按照顺序一起锁定?等待一个解惑 https://github.com/alibaba/ali-react-table/blob/793ce2f9c9747e916791999874c9e25403445550/packages/ali-react-table/src/base-table/calculations.tsx#L77-L86
开启虚模式,当表格渲染完毕后,竖直滚动到中间部分,此时将表格的父容器设置为`display:none`,然后在设置回`display:block`,可复现问题。 排查了一下,发现是`updateRowHeightManager`中在`display:none`时记录了空白的行高(代码块中616行)。 https://github.com/alibaba/ali-react-table/blob/847cc650b5e0e30e6ea05cf3d30cd5fc5be4515a/packages/ali-react-table/src/base-table/table.tsx#L598-L617 因为`display:none`会导致表格的宽高变成0,此时也会进行重渲染,渲染又会去计算要渲染的区域,因为上面的步骤有空白的行高,导致这里滚动条发生变化,等再次设为`display:block`时滚动条就会发生跳动了... https://github.com/alibaba/ali-react-table/blob/847cc650b5e0e30e6ea05cf3d30cd5fc5be4515a/packages/ali-react-table/src/base-table/table.tsx#L408-L409 想请教下,在`updateRowHeightManager`中发生行存在0高度时是否可以不记住此时的高度?我修改成这样可以解决问题。还是说当表格不可见时,`updateRowHeightManager`就不应该执行?还望赐教。