<ReactFlowProvider />
The <ReactFlowProvider />
组件是一个 上下文提供者, 它使得在 <ReactFlow />
组件之外访问流程的内部状态成为可能。我们提供的许多钩子都依赖于这个组件才能正常工作。
import { ReactFlow, ReactFlowProvider, useNodes } from '@xyflow/react'
export default function Flow() {
return (
<ReactFlowProvider>
<ReactFlow nodes={...} edges={...} />
<Sidebar />
</ReactFlowProvider>
)
}
function Sidebar() {
// This hook will only work if the component it's used in is a child of a
// <ReactFlowProvider />.
const nodes = useNodes()
return (
<aside>
{nodes.map((node) => (
<div key={node.id}>
Node {node.id} -
x: {node.position.x.toFixed(2)},
y: {node.position.y.toFixed(2)}
</div>
))}
</aside>
)
}
备注
- 如果您正在使用路由器并希望流程的状态跨路由保持持久性,那么将
<ReactFlowProvider />
组件放在路由器外部至关重要。 - 如果您在同一个页面上有多个流程,您需要为每个流程使用单独的
<ReactFlowProvider />
。