Просмотр исходного кода

listTreeData改变 发送onChange

visuddhinanda 2 лет назад
Родитель
Сommit
76e421a952
1 измененных файлов с 24 добавлено и 24 удалено
  1. 24 24
      dashboard/src/components/article/EditableTree.tsx

+ 24 - 24
dashboard/src/components/article/EditableTree.tsx

@@ -146,6 +146,12 @@ const EditableTreeWidget = ({
   const [listTreeData, setListTreeData] = useState<ListNodeData[]>();
   const [keys, setKeys] = useState<Key>("");
 
+  useEffect(() => {
+    if (typeof onChange !== "undefined") {
+      onChange(listTreeData);
+    }
+  }, [listTreeData]);
+
   useEffect(() => {
     //找到节点并更新
     if (typeof updatedNode === "undefined") {
@@ -170,24 +176,6 @@ const EditableTreeWidget = ({
     setListTreeData(list);
   }, [updatedNode]);
 
-  useEffect(() => {
-    if (typeof addOnArticle === "undefined") {
-      return;
-    }
-    console.log("add ", addOnArticle);
-
-    const newTreeData = [...gData, addOnArticle];
-    setGData(newTreeData);
-    const list = treeToList(newTreeData);
-    setListTreeData(list);
-  }, [addOnArticle]);
-
-  useEffect(() => {
-    const data = tocGetTreeData(treeData);
-    console.log("tree data", data);
-    setGData(data);
-  }, [treeData]);
-
   const appendNode = (key: string, node: TreeNodeData) => {
     console.log("key", key);
     const append = (_node: TreeNodeData[]) => {
@@ -209,6 +197,24 @@ const EditableTreeWidget = ({
     setListTreeData(list);
   };
 
+  useEffect(() => {
+    if (typeof addOnArticle === "undefined") {
+      return;
+    }
+    console.log("add ", addOnArticle);
+
+    const newTreeData = [...gData, addOnArticle];
+    setGData(newTreeData);
+    const list = treeToList(newTreeData);
+    setListTreeData(list);
+  }, [addOnArticle]);
+
+  useEffect(() => {
+    const data = tocGetTreeData(treeData);
+    console.log("tree data", data);
+    setGData(data);
+  }, [treeData]);
+
   const onDragEnter: TreeProps["onDragEnter"] = (info) => {
     console.log(info);
     // expandedKeys 需要受控时设置
@@ -281,9 +287,6 @@ const EditableTreeWidget = ({
     setGData(data);
     const list = treeToList(data);
     setListTreeData(list);
-    if (typeof onChange !== "undefined") {
-      onChange(list);
-    }
   };
 
   return (
@@ -316,9 +319,6 @@ const EditableTreeWidget = ({
             setGData(tmp);
             const list = treeToList(tmp);
             setListTreeData(list);
-            if (typeof onChange !== "undefined") {
-              onChange(list);
-            }
           }}
         >
           {intl.formatMessage({ id: "buttons.remove" })}