亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

操作嵌套數據結構

操作嵌套數據結構

呼啦一陣風 2023-05-11 14:43:57
我正在處理處理標簽和子標簽的組件。我已經弄清楚了數據結構(我認為)以及如何使用現有數據呈現組件。示例: https: //codesandbox.io/s/nested-labels-7vfkb? file=/example.js:292-330但是,我完全堅持我應該如何操作數據。例如,我需要能夠上下重新排列行。我需要能夠刪除特定行及其所有子行,我需要添加到子行等。我不完全確定如何跟蹤數據結構中每一行的位置以執行這些操作。我不想依賴標簽文本,因為文本可以匹配。我假設當我渲染組件時,有一些關于定位的信息我可以附加到刪除/添加/向上和向下按鈕,只是不確定是什么或如何。數據如下所示:[  {    label: "Label: 1",    children: [      {        label: "Label: 1.1",        children: [          {            label: "Label: 1.1.1",            children: [{ label: "Label: 1.1.2" }, { label: "Label: 1.1.3" }]          }        ]      }    ]  }]
查看完整描述

2 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

首先,我想建議使用像react-sortable-tree這樣的包。這只是解決您的問題的眾多實現示例之一。我認為,即使您的數據也已經具有完美的結構作為此包的輸入數據。

如果你有充分的理由自己實現它,你應該使要求盡可能簡單,因為這會變得非常耗時和困難。

將事情分解成小塊并更好地編寫一些測試。

您需要為數據操作添加事件處理程序,并且您已經提到了要做什么:

  • 句柄向上

  • handleRowDown

  • 句柄刪除行

  • 句柄添加行

我想你最終會得到一些進一步的幫助函數來保持一切的可維護性。

  • 添加孩子

  • 刪除孩子

  • 更改行層次結構

  • ...


查看完整回答
反對 回復 2023-05-11
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

從我在這里的示例和代碼沙箱中的示例中可以看出。您的 JSON 看起來像M-ary Tree。

? ?1

? ? |

? ?1.1?

? ? |

? 1.1.1

? /? ?\

1.1.2 1.1.3

因此,您需要使用DFS、BFS或BackTracking的概念,這可能需要 O(n) 時間復雜度



查看完整回答
反對 回復 2023-05-11
  • 2 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號