我想通过将选定类型与树匹配来通过“外部添加”按钮将节点添加到父级。但是我没有树外的树索引/路径。因此,我已通过硬编码的父键来添加子节点。但是如果删除任何节点,父键将被更改。所以我的代码不起作用。
if (this.state.parentNodeValue === 'Position') {
parentKey = 10;
nodeClassName = 'fa-position div';
}
let NEW_NODE = {
title: this.state.englishName,
arabicTitle: this.state.arabicName,
className: nodeClassName
};
let newTree = addNodeUnderParent({
treeData: this.state.treeData,
newNode: NEW_NODE,
expandParent: true,
parentKey: parentKey,
getNodeKey: ({
treeIndex
}) => treeIndex
});
this.setState({
treeData: newTree.treeData,
modalOuterAddNode: !this.state.modalOuterAddNode,
}, () => {
// console.log('treeData : ' + JSON.stringify(this.state.treeData));
});
答案 0 :(得分:0)
通过此代码,将获得带有其索引的标题数组。然后我们可以将子节点添加到这些父索引中。
let titleArray = [];
var buildTree = function (tree) {
_.each(tree, function (item) {
let titleObj = {};
// titleObj.id = item.id;
titleObj.title = item.title;
titleArray.push(titleObj);
if (item.children) buildTree(item.children);
});
}
buildTree(tree);