Closed leeyu98 closed 1 year ago
一个已知的场景:Modal.open中使用 components/Page/List 组件,自定义渲染 titleRender 中使用 Avatar 组件;
下面是复现 Demo 代码中的主要部份:
import { Avatar } from 'choerodon-ui'; import { Button, Modal, useDataSet } from 'choerodon-ui/pro'; import { List } from 'components/Page'; import React from 'react'; import { getDomainDSProps } from './stores'; const Demo = () => { const titleRenderer = (value) => { return <Avatar>{`${value}`}</Avatar>; }; const domainDS = useDataSet(getDomainDSProps, []); return ( <Button onClick={() => { Modal.open({ title: 'title', children: ( <List dataSet={domainDS} idField="domainId" stateField="enableFlag" title="domainName" // title field titleRender={titleRenderer} /> ) }); }}> Click me </Button> ); }; export default Demo;
经过调试后发现,源代码中相关的部分; 这种情况下由于 获取到的 avatarNode.getBoundingClientRect().width 为 0,所以计算出的缩放比例为负数。但是这个地方使用 avatarNode.offsetWidth 能够正确获取元素宽度。
已修复,注意发版日志
一个已知的场景:Modal.open中使用 components/Page/List 组件,自定义渲染 titleRender 中使用 Avatar 组件;
下面是复现 Demo 代码中的主要部份:
经过调试后发现,源代码中相关的部分; 这种情况下由于 获取到的 avatarNode.getBoundingClientRect().width 为 0,所以计算出的缩放比例为负数。但是这个地方使用 avatarNode.offsetWidth 能够正确获取元素宽度。