diff --git a/packages/core/client/src/block-provider/TableBlockProvider.tsx b/packages/core/client/src/block-provider/TableBlockProvider.tsx index 7ac73772cd..a62c1aaeaa 100644 --- a/packages/core/client/src/block-provider/TableBlockProvider.tsx +++ b/packages/core/client/src/block-provider/TableBlockProvider.tsx @@ -2,7 +2,7 @@ import { ArrayField, createForm } from '@formily/core'; import { FormContext, Schema, useField, useFieldSchema } from '@formily/react'; import uniq from 'lodash/uniq'; import React, { createContext, useContext, useEffect, useMemo, useState } from 'react'; -import { useCollectionManager } from '../collection-manager'; +import { useCollectionManager, useCollection } from '../collection-manager'; import { BlockProvider, RenderChildrenWithAssociationFilter, useBlockRequestContext } from './BlockProvider'; import { useFixedSchema } from '../schema-component'; @@ -88,11 +88,12 @@ export const TableBlockProvider = (props) => { const appends = useAssociationNames(props.collection); const form = useMemo(() => createForm(), []); const fieldSchema = useFieldSchema(); + const collection = useCollection(); const { treeTable } = fieldSchema['x-decorator-props']; if (props.dragSort) { params['sort'] = ['sort']; } - if (treeTable !== false) { + if ((collection as any).template === 'tree' && treeTable !== false) { params['tree'] = true; } if (!Object.keys(params).includes('appends')) { diff --git a/packages/core/client/src/schema-component/antd/table-v2/utils.ts b/packages/core/client/src/schema-component/antd/table-v2/utils.ts index a76d26d9c3..31599cfd37 100644 --- a/packages/core/client/src/schema-component/antd/table-v2/utils.ts +++ b/packages/core/client/src/schema-component/antd/table-v2/utils.ts @@ -20,11 +20,13 @@ export function extractIndex(str) { export function getIdsWithChildren(nodes) { const ids = []; - for (let node of nodes) { - if (node.children && node.children.length > 0) { - ids.push(node.id); - ids.push(...getIdsWithChildren(node.children)); + if (nodes) { + for (let node of nodes) { + if (node.children && node.children.length > 0) { + ids.push(node.id); + ids.push(...getIdsWithChildren(node.children)); + } } } return ids; -} \ No newline at end of file +}