useNodesInitialized()
This hook tells you whether all the nodes in a flow have been measured and given
a width and height. When you add a node to the flow, this hook will return
false and then true again once the node has been measured.
import { useReactFlow, useNodesInitialized } from '@xyflow/react';
import { useEffect, useState } from 'react';
 
const options = {
  includeHiddenNodes: false,
};
 
export default function useLayout() {
  const { getNodes } = useReactFlow();
  const nodesInitialized = useNodesInitialized(options);
  const [layoutedNodes, setLayoutedNodes] = useState(getNodes());
 
  useEffect(() => {
    if (nodesInitialized) {
      setLayoutedNodes(yourLayoutingFunction(getNodes()));
    }
  }, [nodesInitialized]);
 
  return layoutedNodes;
}Signature
Parameters:| Name | Type | Default | 
|---|
booleanWhether or not the nodes have been initialized by the <ReactFlow /> component and
given a width and height.
Notes
- This hook always returns 
falseif the internal nodes array is empty. 
Last updated on