javascript - 使用 React 可排序树进行过滤
问题描述
我正在使用反应可排序树并希望能够过滤。我从我们的后端服务器获取过滤后的节点,然后对当前树进行缩减以显示过滤后的节点。这部分工作正常,但是当我获取孩子时,我的树状态变得混乱,我怀疑这可能是由于 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;
}
我应该如何处理过滤?
解决方案
推荐阅读
- jquery - 将 curl 命令转换为带有特定标头的 ajax
- php - 如何从 PHP 数组中打印具有 4 列的动态表并添加空以完成表行
- python-3.x - 付款批准后如何获取 return_url,以便我可以在 return_url 中获取付款人 ID?
- php - 为什么 __soapcall 将 xs:decimal 翻译为“true”?
- java - 使用 jose4j 的 ECDH + JWE 加密/解密
- javascript - 如何使用 HTML5 在标题中添加文本
- laravel - 使用 Carbon 在 Laravel 中未显示阿拉伯日期
- websocket - 使用无服务器的自定义 api 网关 websocket 端点
- vuejs2 - 在存储对象中移动操作后,我有事件重复
- php - 需要帮助让 PHP 项目在我的 wampserver 上运行