useTreeLoad 
用于树形结构异步加载数据的 Hooks
示例 
点我查看代码
tsx
import { useTreeLoad } from "@wenonly/react-hooks";
import { delayMs } from "@wenonly/utils";
import { Tree } from "antd";
import React from "react";
const RUseTreeLoad = () => {
  const { treeData, loading, refresh, loadData, loadedKeys } = useTreeLoad({
    getRequest: (parent) => {
      // 如果存在父节点,则应用子节点加载逻辑
      if (parent) {
        return async ({ page, size }) => {
          await delayMs(1000);
          return Promise.resolve({
            list: [
              {
                label: "子" + page,
                value: "child" + page,
              },
              {
                label: "子" + page + "_1",
                value: "child" + page + "_1",
              },
            ],
            isComplete: false,
          });
        };
      }
      return ({ page, size }) => {
        return Promise.resolve({
          list: [
            {
              label: "父1",
              value: "parent1",
            },
            {
              label: "父2",
              value: "parent2",
            },
          ],
          isComplete: true,
        });
      };
    },
    transformer: (node) => {
      return { title: node.label, key: node.value! };
    },
  });
  return (
    <Tree treeData={treeData} loadedKeys={loadedKeys} loadData={loadData} />
  );
};
export default RUseTreeLoad;参数 
| key | 类型 | 描述 | 
|---|---|---|
| manualInit | boolean | undefined | 手动init page1 | 
| getRequest | (parentNode?: DefaultOptionType | undefined) => (params: { page: number; size: number; }) => Promise<UseTreeLoadRequestResult> | 没有parentNode代表第一层 | 
| transformer | (node: DefaultOptionType) => T | 树已经构建好了之后,对每个节点进行转换 | 
| loadMoreNodeRender | ((status: "loading" | "complete" | "waitLoad", defaultDom: JSX.Element) => JSX.Element) | undefined |