From a0dd58e7e3a87afe67dd76f916d140210862f5cb Mon Sep 17 00:00:00 2001 From: Rairn <958414905@qq.com> Date: Tue, 23 May 2023 16:18:01 +0800 Subject: [PATCH] fix(Data-templates): avoid errors and add log --- .../antd/form-v2/Templates.tsx | 25 +++++++++++-------- packages/core/utils/src/client.ts | 1 + packages/core/utils/src/log.ts | 3 +++ 3 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 packages/core/utils/src/log.ts diff --git a/packages/core/client/src/schema-component/antd/form-v2/Templates.tsx b/packages/core/client/src/schema-component/antd/form-v2/Templates.tsx index 391579721..329901189 100644 --- a/packages/core/client/src/schema-component/antd/form-v2/Templates.tsx +++ b/packages/core/client/src/schema-component/antd/form-v2/Templates.tsx @@ -1,5 +1,5 @@ import { useFieldSchema } from '@formily/react'; -import { forEach, showToast } from '@nocobase/utils/client'; +import { error, forEach, showToast } from '@nocobase/utils/client'; import { Select } from 'antd'; import _ from 'lodash'; import React, { useCallback, useEffect } from 'react'; @@ -29,15 +29,20 @@ const useDataTemplates = () => { // 过滤掉已经被删除的字段 items.forEach((item) => { - item.fields = item.fields - .map((field) => { - const joinField = getCollectionJoinField(`${item.collection}.${field}`); - if (joinField) { - return field; - } - return ''; - }) - .filter(Boolean); + try { + item.fields = item.fields + .map((field) => { + const joinField = getCollectionJoinField(`${item.collection}.${field}`); + if (joinField) { + return field; + } + return ''; + }) + .filter(Boolean); + } catch (err) { + error(err); + item.fields = []; + } }); const templates: any = [ diff --git a/packages/core/utils/src/client.ts b/packages/core/utils/src/client.ts index ece5e261c..7e4b7dc82 100644 --- a/packages/core/utils/src/client.ts +++ b/packages/core/utils/src/client.ts @@ -4,6 +4,7 @@ export * from './date'; export * from './forEach'; export * from './getValuesByPath'; export * from './json-templates'; +export * from './log'; export * from './merge'; export * from './notification'; export * from './number'; diff --git a/packages/core/utils/src/log.ts b/packages/core/utils/src/log.ts new file mode 100644 index 000000000..227da7ea6 --- /dev/null +++ b/packages/core/utils/src/log.ts @@ -0,0 +1,3 @@ +export const error = (message: Error | string, ...args: any[]) => { + console.error(message, ...args); +};