useUpdateNodeInternals
ノードにハンドルをプログラムで追加または削除したり、ノードのハンドルの位置を更新したりする場合は、このフックを使用して 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: string | string[]) => void プログラムで変更した1つ以上のノードの内部状態を更新するように React Flow に指示するには、この関数を使用します。 |
注記
- このフックは、
<ReactFlowProvider />
または<ReactFlow />
コンポーネントの子であるコンポーネントでのみ使用できます。