Estoy tratando de mantener el orden de los nodos en el árbol usando react-sortable-tree ( https://github.com/frontend-collective/react-sortable-tree ), por ejemplo
- Label 1 - Label 2 - Label 3Cambiando el orden de la Etiqueta 3 a la Etiqueta 2 de la siguiente manera y también pasando el treeIndex,
- Label 1 - Label 3 - Label 2Al establecer el estado actualizado y volver a cargar, la estructura de árbol de la página no sigue el orden de treeIndex.
He intentado lo siguiente usando las utilidades del árbol ordenable de reacción ( https://github.com/frontend-collective/react-sortable-tree/blob/master/src/utils/tree-data-utils.js )
Intenté convertir mi árbol actual en una estructura plana usando getFlatDataFromTree() y luego hacer los cambios de treeIndex que se requieren y luego convertir los datos planos nuevamente en una estructura de árbol usando la misma biblioteca de utilidades con getTreeFromFlatData() pero la secuencia con respecto a treeIndex es no considerado.
Ya tengo datos de árbol almacenados en treeData,
aquí labelNodes contiene la ruta de cada nodo del árbol. Así que los estoy recorriendo y asignando el orden correcto.
Código:
flatTree.forEach(treeNode => { labelNodes.forEach(element => { if (treeNode.node.id === element.id) { treeNode.path = element.path; treeNode.treeIndex = element.treeIndex; } return true; }); }); const getParentKey = node => { if (node.parentNode) { return node.parentNode.id; } return 0; }; const sortedFlatTree = flatTree.sort((a, b) => a.treeIndex - b.treeIndex); const treeConversion = getTreeFromFlatData({ flatData: sortedFlatTree, getParentKey, });treeConversion no mantiene el orden de clasificación.