React Sortable Tree-我可以通过使用树数据查找类型来给外部按钮“添加节点”吗?

时间:2019-05-29 06:46:34

标签: node.js reactjs

我想通过将选定类型与树匹配来通过“外部添加”按钮将节点添加到父级。但是我没有树外的树索引/路径。因此,我已通过硬编码的父键来添加子节点。但是如果删除任何节点,父键将被更改。所以我的代码不起作用。

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));
});

1 个答案:

答案 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);