浏览代码

feat: form add stopPropagation api, #2355 (#2360)

pointhalo 1 年之前
父节点
当前提交
9024c2a927
共有 2 个文件被更改,包括 14 次插入0 次删除
  1. 10 0
      packages/semi-ui/form/baseForm.tsx
  2. 4 0
      packages/semi-ui/form/interface.ts

+ 10 - 0
packages/semi-ui/form/baseForm.tsx

@@ -75,6 +75,10 @@ class Form<Values extends Record<string, any> = any> extends BaseComponent<BaseF
         style: PropTypes.object,
         showValidateIcon: PropTypes.bool,
         stopValidateWithError: PropTypes.bool,
+        stopPropagation: PropTypes.shape({
+            submit: PropTypes.bool,
+            reset: PropTypes.bool,
+        }),
         id: PropTypes.string,
         wrapperCol: PropTypes.object, // Control wrapperCol {span: number, offset: number} for all field child nodes
         trigger: PropTypes.oneOfType([
@@ -240,11 +244,17 @@ class Form<Values extends Record<string, any> = any> extends BaseComponent<BaseF
 
     submit(e: React.FormEvent<HTMLFormElement>) {
         e.preventDefault();
+        if (this.props.stopPropagation && this.props.stopPropagation.submit) {
+            e.stopPropagation();
+        }
         this.foundation.submit(e);
     }
 
     reset(e: React.FormEvent<HTMLFormElement>) {
         e.preventDefault();
+        if (this.props.stopPropagation && this.props.stopPropagation.reset) {
+            e.stopPropagation();
+        }
         this.foundation.reset();
     }
 

+ 4 - 0
packages/semi-ui/form/interface.ts

@@ -128,5 +128,9 @@ export interface BaseFormProps <Values extends Record<string, any> = any> extend
     disabled?: boolean;
     showValidateIcon?: boolean;
     stopValidateWithError?: boolean;
+    stopPropagation?: {
+        submit?: boolean;
+        reset?: boolean
+    };
     trigger?: FieldValidateTriggerType
 }