ウェブサイト検索

reactjs - Reactアプリケーションでreactflowの展開と折りたたみ機能を実装する方法


私は react アプリケーションで react-flow の子ノードを展開および折りたたむ機能を実装しようとしています。ノードとエッジの hidden プロパティを使用して非表示にしようとしました。

 const hide = (hidden: boolean) => (nodeOrEdge: any) => {
  const value = nodeOrEdge.id.includes("hidden");
  if (value) {
    nodeOrEdge.hidden = hidden;
  }
  return nodeOrEdge;
  };

しかし、この実装では id プロパティに 'hidden' というテキストがあるかどうかをチェックして、それを非表示にします。しかし、私は親ノードがクリックされたときに子ノード全体とエッジを非表示にしたいです。また、グループ要素を作成してその中に子ノードを配置することも試しました。

onNodeClick プロパティは現在のノードを返し、さらに getOutgoers() と getConnectedEdges() によって、すべての出力ノードと接続されたエッジも返します。

const onNodeClick = (_: ReactMouseEvent, node: Node) => {
    console.log("clicked node", node);
    let n = getOutgoers(node, nodes, edges);
    let e = getConnectedEdges(nodes, edges);
    console.log("All outgoing node", n);
    console.log("All connected edges", e);
};

親ノードをクリックしたときに子ノードやエッジを非表示にする、よりクリーンな方法を探しています。何か助けや提案があればありがたいです。現時点までのコードはCodeSandboxにあります。