參考鉤子

useUpdateNodeInternals

GitHub 上的原始碼

當您以程式碼方式新增或移除節點的控制點,或更新節點的控制點位置時,您需要使用此鉤子讓 React Flow 知道。這將更新節點的內部尺寸,並在必要時正確地重新定位畫布上的控制點。

import { useCallback, useState } from 'react';
import { Handle, useUpdateNodeInternals } from '@xyflow/react';
 
export default function RandomHandleNode({ id }) {
  const updateNodeInternals = useUpdateNodeInternals();
  const [handleCount, setHandleCount] = useState(0);
  const randomizeHandleCount = useCallback(() => {
    setHandleCount(Math.floor(Math.random() * 10));
    updateNodeInternals(id);
  }, [id, updateNodeInternals]);
 
  return (
    <>
      {Array.from({ length: handleCount }).map((_, index) => (
        <Handle
          key={index}
          type="target"
          position="left"
          id={`handle-${index}`}
        />
      ))}
 
      <div>
        <button onClick={randomizeHandleCount}>Randomize handle count</button>
        <p>There are {handleCount} handles on this node.</p>
      </div>
    </>
  );
}

簽名

#回傳
(nodeId: 字串 | 字串[]) => void
使用此函式告知 React Flow 更新您以程式碼方式變更的一個或多個節點的內部狀態。

注意事項