如何在 Fabric DetailsList 中呈现包含文本和工具提示图标的列 header
How to render a column header with both text and a tooltip icon in Fabric DetailsList
在 DetailsList 中,是否可以使用文本和带有工具提示的图标呈现特定列 header:(我尝试使用 onRenderDetailsHeader,但我不确定如何处理特定的列)。
这是我很快整理的 Codepen。唯一的问题是我无法将信息图标呈现为工具提示的目标。也许这会给你一个好的开始。
function onRenderDetailsHeader(props, defaultRender?) {
return defaultRender!({
...props,
onRenderColumnHeaderTooltip: (tooltipHostProps) => {
return (
<Fabric.TooltipHost {...tooltipHostProps} />
)
}
})
}
一种hack方式,虽然name
prop定义为string类型,但实际上我们可以传递一个ReactNode给它,只需要将其类型转换为any即可。
示例代码:
import { Tooltip } from 'antd'
import { InfoCircleOutlined } from '@ant-design/icons'
const columns: IColumn[] = [
{
name: <div>xxx <Tooltip title="tooltip"><InfoCircleOutlined /></Tooltip></div> as any,
...
},
...
]
<DetailsList columns={columns} .../>
效果:
我的解决方案与 Vitalie Braga's, but with a more detailed return of the onRenderColumnHeaderTooltip
you can achieve this functionality. I based populating the tooltipHostProps.children
from this stack overflow question 类似,您还可以在此处查看有关样式化工具提示 header 的更多信息。
实现过滤的一种方法是查看 tooltipHostProps.id
以指定您只需要某些列 header 单元格上的工具提示图标。在您的示例中,代码如下所示:
function onRenderDetailsHeader(props, defaultRender?) {
return defaultRender!({
...props,
onRenderColumnHeaderTooltip=(tooltipHostProps) => (
<>
<span>
{tooltipHostProps?.children}
</span>
{tooltipHostProps?.id?.includes('value') &&
<span>
<TooltipHost content={"This is the tooltip"}>
<Icon iconName="info" />
</TooltipHost>
</span>
}
</>
)}
);
};
在 DetailsList 中,是否可以使用文本和带有工具提示的图标呈现特定列 header:(我尝试使用 onRenderDetailsHeader,但我不确定如何处理特定的列)。
这是我很快整理的 Codepen。唯一的问题是我无法将信息图标呈现为工具提示的目标。也许这会给你一个好的开始。
function onRenderDetailsHeader(props, defaultRender?) {
return defaultRender!({
...props,
onRenderColumnHeaderTooltip: (tooltipHostProps) => {
return (
<Fabric.TooltipHost {...tooltipHostProps} />
)
}
})
}
一种hack方式,虽然name
prop定义为string类型,但实际上我们可以传递一个ReactNode给它,只需要将其类型转换为any即可。
示例代码:
import { Tooltip } from 'antd'
import { InfoCircleOutlined } from '@ant-design/icons'
const columns: IColumn[] = [
{
name: <div>xxx <Tooltip title="tooltip"><InfoCircleOutlined /></Tooltip></div> as any,
...
},
...
]
<DetailsList columns={columns} .../>
效果:
我的解决方案与 Vitalie Braga's, but with a more detailed return of the onRenderColumnHeaderTooltip
you can achieve this functionality. I based populating the tooltipHostProps.children
from this stack overflow question 类似,您还可以在此处查看有关样式化工具提示 header 的更多信息。
实现过滤的一种方法是查看 tooltipHostProps.id
以指定您只需要某些列 header 单元格上的工具提示图标。在您的示例中,代码如下所示:
function onRenderDetailsHeader(props, defaultRender?) {
return defaultRender!({
...props,
onRenderColumnHeaderTooltip=(tooltipHostProps) => (
<>
<span>
{tooltipHostProps?.children}
</span>
{tooltipHostProps?.id?.includes('value') &&
<span>
<TooltipHost content={"This is the tooltip"}>
<Icon iconName="info" />
</TooltipHost>
</span>
}
</>
)}
);
};