From d3dffca118a0ae53cede2a6a2ddc3f9012d8ebc1 Mon Sep 17 00:00:00 2001 From: lhbxs <596850703@qq.com> Date: Wed, 28 Feb 2024 11:12:40 +0800 Subject: [PATCH] fix: actionBtns not add footer dependencies --- docs/form-render/index.md | 184 ++++++------------- packages/form-render/package.json | 2 +- packages/form-render/src/form-core/index.tsx | 33 ++-- 3 files changed, 69 insertions(+), 150 deletions(-) diff --git a/docs/form-render/index.md b/docs/form-render/index.md index d17e7539c..39e0ad58e 100644 --- a/docs/form-render/index.md +++ b/docs/form-render/index.md @@ -42,146 +42,68 @@ npm i form-render --save */ import React from 'react'; import FormRender, { useForm } from 'form-render'; -// import schema from './schema/simple'; - - -const schema = { - type: 'object', - properties: { - countryCode: { - type: 'number', - placeholder: '区域-目的地', - widget: 'select', - width: '50%', - required: true, - props: {} - }, - cityCode: { - type: 'number', - placeholder: '区域-城市', - widget: 'select', - width: '50%', - props: {} - }, - subConfigValue: { - title: '热门日期', - type: 'array', - widget: 'simpleList', - props: { - hideCopy: true, - delConfirmProps: { - overlayClassName: 'del-confirm-hot-date' - } - }, - items: { - type: 'object', - properties: { - date: { - type: 'range', - widget: 'dateRange', - required: true, - props: {} - } - } - } - } - }, - displayType: "row", - labelWidth: 100, -}; +import schema from './schema/simple'; export default () => { const form = useForm(); - const onMount = () => { - debugger; - form.setSchemaByPath('countryCode', { - props: { - options: [{ value: 1, label: 1}], - }, - }); - }; - - const watch = { - countryCode: (value: string) => { - // form.setValues({ cityCode: undefined }); - // form.setSchemaByPath('cityCode', { - // props: { - // options: cityMap[value].map((item: any) => ({ - // label: item.provinceName, - // value: item.provinceCode, - // })), - // }, - // }); - }, + const onFinish = (formData) => { + console.log('formData:', formData); }; return ( - - - - ) -} -// export default () => { -// const form = useForm(); - -// const onFinish = (formData) => { -// console.log('formData:', formData); -// }; - -// return ( -// { -// // '#': () => {} 等同于 onValuesChange -// // console.log('表单 allValues:', allValues); -// setTimeout(() => { -// form.setSchema( -// { -// type: "object", -// displayType: "row", -// column: 2, -// properties: { -// input12: { -// title: "输入框xxxx", -// displayType: "row", -// type: "string", -// widget: "input", -// }, -// number12: { -// title: "数字输入框", -// type: "number", -// widget: "inputNumber", -// }, -// select12: { -// title: "下啦单选", -// widget: "select", -// props: { -// options: [ -// { label: "东", value: "east" }, -// { label: "西", value: "west" }, -// ], -// }, -// }, -// }, -// }, -// true -// ); -// }, 0); + { + // '#': () => {} 等同于 onValuesChange + // console.log('表单 allValues:', allValues); + setTimeout(() => { + form.setSchema( + { + type: "object", + displayType: "row", + column: 2, + properties: { + input12: { + title: "输入框xxxx", + displayType: "row", + type: "string", + widget: "input", + }, + number12: { + title: "数字输入框", + type: "number", + widget: "inputNumber", + }, + select12: { + title: "下啦单选", + widget: "select", + props: { + options: [ + { label: "东", value: "east" }, + { label: "西", value: "west" }, + ], + }, + }, + }, + }, + true + ); + }, 0); -// } -// }} -// /> -// ); -// } + } + }} + /> + ); +} ``` - \ No newline at end of file + \ No newline at end of file diff --git a/packages/form-render/package.json b/packages/form-render/package.json index 79f2c8791..c0d780ee9 100644 --- a/packages/form-render/package.json +++ b/packages/form-render/package.json @@ -1,6 +1,6 @@ { "name": "form-render", - "version": "2.4.0", + "version": "2.4.1", "description": "通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成", "keywords": [ "Form", diff --git a/packages/form-render/src/form-core/index.tsx b/packages/form-render/src/form-core/index.tsx index 5c60e97fb..08ec1a470 100644 --- a/packages/form-render/src/form-core/index.tsx +++ b/packages/form-render/src/form-core/index.tsx @@ -196,24 +196,21 @@ const FormCore:FC = (props) => { const operlabelCol = getFormItemLayout(column, {}, { labelWidth })?.labelCol; - const actionBtns = useMemo(() => { - const result: React.JSX.Element[] = []; - if (!footer?.reset?.hide) { - result.push( - - ); - } - if (!footer?.submit?.hide) { - result.push( - - ); - } - return result; - }, []); + const actionBtns = []; + if (!footer?.reset?.hide) { + actionBtns.push( + + ); + } + if (!footer?.submit?.hide) { + actionBtns.push( + + ); + } return (