<MiniMap />
<MiniMap /> 组件可用于渲染流程的概览。它将每个节点渲染为 SVG 元素,并可视化当前视窗相对于流程其余部分的位置。
import { ReactFlow, MiniMap } from '@xyflow/react';
 
export default function Flow() {
  return (
    <ReactFlow nodes={[...]]} edges={[...]]}>
      <MiniMap nodeStrokeWidth={3} />
    </ReactFlow>
  );
}属性
对于 TypeScript 用户,<MiniMap /> 组件的属性类型导出为 MiniMapProps。
| 名称 | 类型 | 默认值 | 
|---|---|---|
| # nodeColor? | 字符串 | (节点: Node<T>) => 字符串 |  | 
| # nodeStrokeColor? | 字符串 | (节点: Node<T>) => 字符串 |  | 
| # nodeClassName? | 字符串 | (节点: Node<T>) => 字符串 |  | 
| # nodeBorderRadius? | 数字 |  | 
| # nodeStrokeWidth? | 数字 |  | 
| # nodeComponent? | React.ComponentType<MiniMapNodeProps>一个自定义组件,用于在小地图中渲染节点。此组件必须渲染 SVG 元素! |  | 
| # maskColor? | 字符串覆盖小地图中当前未在视窗中可见部分的蒙版的颜色。 |  | 
| # maskStrokeColor? | 字符串 |  | 
| # maskStrokeWidth? | 数字 |  | 
| # position? | PanelPosition |  | 
| # onClick? | (事件: React.MouseEvent,位置: XYPosition) => void |  | 
| # onNodeClick? | (事件: React.MouseEvent,节点: Node<T>) => void |  | 
| # pannable? | 布尔值确定是否可以通过在小地图中拖动来平移视窗。 |  | 
| # zoomable? | 布尔值确定是否可以通过在小地图中滚动来缩放视窗。 |  | 
| # ariaLabel? | 字符串 | null小地图中没有供屏幕阅读器用作可访问名称的文本,因此我们必须提供一个以使小地图可访问。默认值已足够,但您可能希望将其替换为与您的应用程序或产品更相关的名称。 |  | 
| # inversePan? | 布尔值 |  | 
| # zoomStep? | 数字 |  | 
| # offsetScale? | 数字 |  | 
示例
使小地图可交互
默认情况下,小地图不可交互。要允许用户通过平移或缩放小地图与视窗交互,可以将 zoomable 或 pannable(或两者!)道具设置为 true。
import { ReactFlow,  MiniMap } from '@xyflow/react';
 
export default function Flow() {
  return (
    <ReactFlow nodes={[...]]} edges={[...]]}>
      <MiniMap pannable zoomable />
    </ReactFlow>
  );
}实现自定义小地图节点
可以将自定义组件传递给 nodeComponent 道具,以更改在小地图中渲染节点的方式。如果这样做,为了使其正常工作,必须在组件中仅使用 SVG 元素。
import { ReactFlow,  MiniMap } from '@xyflow/react';
 
export default function Flow() {
  return (
    <ReactFlow nodes={[...]]} edges={[...]]}>
      <MiniMap nodeComponent={MiniMapNode} />
    </ReactFlow>
  );
}
 
function MiniMapNode({ x, y }) {
  return <circle cx={x} cy={y} r="50" />;
}查看 MiniMapNodeProps 文档,了解传递给自定义组件的道具。
自定义小地图节点颜色
nodeColor、nodeStrokeColor 和 nodeClassName 道具可以是接收一个 Node 并计算道具值的函数。这可用于自定义每个小地图节点的外观。
此示例展示了如何根据节点的类型为每个小地图节点着色
import { ReactFlow,  MiniMap } from '@xyflow/react';
 
export default function Flow() {
  return (
    <ReactFlow nodes={[...]]} edges={[...]]}>
      <MiniMap nodeColor={nodeColor} />
    </ReactFlow>
  );
}
 
function nodeColor(node) {
  switch (node.type) {
    case 'input':
      return '#6ede87';
    case 'output':
      return '#6865A5';
    default:
      return '#ff0072';
  }
}Typescript
此组件接受自定义节点类型的泛型类型参数。有关更多信息,请参见我们的 Typescript 指南中的 本节。
<MiniMap<CustomNodeType> nodeColor={nodeColor} />