ReactFlow Instance
You can receive a reactFlowInstance by using the onInit callback or the useReactFlow hook:
The reactFlowInstance has the following functions:
Nodes and Edges​
getNodes​
Returns array of nodes.
getNodes(): Node[]
getNode​
Returns a node by id.
getNode(id: string): Node | undefined
setNodes​
Sets nodes array.
setNodes(nodes: Node[] | (nodes: Node[]) => Node[]): void
addNodes​
Adds one or multiple nodes
addNodes(nodes: Node | Node[]): void
getEdges​
Returns array of edges.
getEdges(): Edge[]
getEdge​
Returns a edge by id.
getEdge(id: string): Edge | undefined
setEdges​
Sets edges array.
setEdges(edges: Edge[] | (edges: Edge[]) => Edge[]): void
addEdges​
Adds one or multiple edges.
addEdges(edges: Edge | Edge[]): void
toObject​
Returns nodes, edges and viewport.
toObject(): { nodes, edges, viewport }: ReactFlowJsonObject
Viewport​
fitBounds​
Fits the pane to the passed bounds (object with width x, y, width and height: { x: 0, y: 0, width: 100, height: 100 })
fitBounds({ x, y, width, height }: Rect, { padding, duration }?: FitBoundsOptions): void
fitView​
Fits the view to the nodes on the pane. padding is 0.1 and includeHiddenNodes is false by default.
fitView({ padding: number, includeHiddenNodes: boolean }?: FitViewOptions): void
zoomIn​
Zooms in.
zoomIn({ duration }?: ViewportHelperFunctionOptions): void
zoomOut​
Zooms out.
zoomOut({ duration }?: ViewportHelperFunctionOptions): void
zoomTo​
Zooms to passed zoom level.
zoomTo(zoomLevel: number, { duration }?: ViewportHelperFunctionOptions): void
getZoom​
Returns the current zoom level.
getZoom(): number
setViewport​
Sets the viewport of the pane.
setViewport({ x, y, zoom }: Viewport, { duration }?: ViewportHelperFunctionOptions): void
getViewport​
Returns the viewport of the pane.
getViewport(): { x, y, zoom }: Viewport
setCenter​
Sets the center to the passed params. If no zoom is passed the maxZoom is used.
setCenter(x: number, y: number, { zoom, duration }?: SetCenterOptions): void
project​
Transforms pixel coordinates to the internal ReactFlow coordinate system. This can be used when you drag nodes (from a side bar for example) and need the internal position on the pane.
({ x, y }: XYPosition): { x, y }: XYPosition
viewportInitialized​
Boolean property to determine if React Flow has been initialized with all its event listeners.