Javascript 使用可排序树进行过滤

Javascript 使用可排序树进行过滤,javascript,reactjs,filtering,reduce,Javascript,Reactjs,Filtering,Reduce,我正在使用react可排序树,希望能够进行筛选。我将从后端服务器获取过滤节点,然后在当前树上执行reduce以显示过滤节点。这部分工作正常,但当我取孩子时,我的树状态变得混乱,我怀疑这可能是由于javascript引用 代码如下: FilteredNodes来自服务器 static filterNodes = (map, processingStatuses, filteredNodes) => (newTree, node) => { const docNode = clo

我正在使用react可排序树,希望能够进行筛选。我将从后端服务器获取过滤节点,然后在当前树上执行reduce以显示过滤节点。这部分工作正常,但当我取孩子时,我的树状态变得混乱,我怀疑这可能是由于javascript引用

代码如下: FilteredNodes来自服务器

static filterNodes = (map, processingStatuses, filteredNodes) => (newTree, node) => {
    const docNode = cloneDeep(TreeUtils.docNodeFromTreeNode(map, node));
    const thisNodePasses = filteredNodes.findIndex(findNode => findNode.id === docNode.id);
    if (thisNodePasses >= 0) {
      newTree.push({ ...node });
      return newTree;
    }

    if (docNode.children && docNode.children.length) {
      const filteredChildren = docNode.children.reduce(
        FilterUtils.filterNodes(map, processingStatuses, filteredNodes),
        [],
      );
      if (filteredChildren.length) {
        newTree.push({
          ...node,
          children: [...filteredChildren],
        });
      }
    }

    return newTree;
  }
我应该如何处理过滤

  static getFilteredTree = (tree, map, processingStatuses, filteredNodes) => {

    return filteredNodes.length ?
      tree.reduce(FilterUtils.filterNodes(map, processingStatuses, filteredNodes), []) : tree;
  }