Фильтрация с помощью React Sortable Tree - PullRequest
0 голосов
/ 24 апреля 2020

Я использую реагирующее сортируемое дерево и хочу иметь возможность фильтровать. Я получаю отфильтрованные узлы с нашего внутреннего сервера, а затем сокращаю текущее дерево для отображения отфильтрованных узлов. Эта часть работает нормально, но когда я выбираю детей, мое древовидное состояние портится, и я подозреваю, что это может быть связано с 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;
  }

Как мне обращаться с фильтрацией?

...