1
感謝您的閱讀和幫助。這是到目前爲止,我的情況:以遞歸方式創建動態樹
我有很多數據在數據庫中,每一塊數據都有編號,parentId的(這意味着你可以找到使用該的parentId其父的ID),名稱,描述。
我想創建一個動態樹使用反應,但我不知道我有多少級別的節點。每個節點代表數據庫中的一個id。用戶在這棵樹上點擊一個節點A,其父節點等於A的ID的子節點將顯示/隱藏。
我不打算檢索所有的數據,因爲它會花費很長時間。現在,我可以通過發送請求來獲取一個節點的孩子,並得到response.body:
getChildren(id){ ajax.get('http://localhost:8080/configmgmt/code/category/retriveTree/' + id) .end((error, response) => { if (!error && response) { console.dir(response.body); this.setState(subdata:response.body}); } else { console.log('There was an error fetching from database', error); } } ); }
- 在
渲染部分,我寫道:
{this.state.subdata.map((rb,index)=>{ return <li><div><a href='##' onClick = {this.getChildren.bind(this,rb.id)}><em></em><label className="one_title">{rb.name}</label></a></div></li>}) }
問題來了,我還是不知道如何遞歸地創建樹(因爲任何節點都可能有其子節點)。當我們只能從數據庫中獲取一個節點的子節點時如何做到這一點?