diff --git a/antdv-demo b/antdv-demo index bf88dd3b3..60cb5c8b2 160000 --- a/antdv-demo +++ b/antdv-demo @@ -1 +1 @@ -Subproject commit bf88dd3b3e299ab1e7af59c2a8938663ecd24835 +Subproject commit 60cb5c8b276b8d5a8c7fc9f8cb39053a14e242ee diff --git a/components/form/FormItem.jsx b/components/form/FormItem.jsx index c938d64c0..780bcdbce 100644 --- a/components/form/FormItem.jsx +++ b/components/form/FormItem.jsx @@ -25,6 +25,7 @@ import { validateRules } from './utils/validateUtil'; import { getNamePath } from './utils/valueUtil'; import { toArray } from './utils/typeUtil'; import { warning } from '../vc-util/warning'; +import find from 'lodash/find'; const iconMap = { success: CheckCircleFilled, @@ -228,7 +229,12 @@ export default { this.required !== undefined ? { required: !!this.required, trigger: 'change' } : []; const prop = getPropByPath(formRules, this.namePath); formRules = formRules ? prop.o[prop.k] || prop.v : []; - return [].concat(selfRules || formRules || []).concat(requiredRule); + const rules = [].concat(selfRules || formRules || []); + if (find(rules, rule => rule.required)) { + return rules; + } else { + return rules.concat(requiredRule); + } }, getFilteredRule(trigger) { const rules = this.getRules(); diff --git a/examples/App.vue b/examples/App.vue index c224868cf..a779e7119 100644 --- a/examples/App.vue +++ b/examples/App.vue @@ -4,7 +4,7 @@