diff --git a/packages/uniforms/src/helpers/connectField.js b/packages/uniforms/src/helpers/connectField.js index 6232b9896..bc0862011 100644 --- a/packages/uniforms/src/helpers/connectField.js +++ b/packages/uniforms/src/helpers/connectField.js @@ -32,7 +32,7 @@ export default function connectField (component, { return; } - if (props.value === undefined && !props.field.optional) { + if (props.value === undefined && props.required) { props.onChange(props.initialValue); } } diff --git a/packages/uniforms/test/helpers/connectField.js b/packages/uniforms/test/helpers/connectField.js index 4458dcfaf..c3de19299 100644 --- a/packages/uniforms/test/helpers/connectField.js +++ b/packages/uniforms/test/helpers/connectField.js @@ -17,7 +17,8 @@ describe('connectField', () => { getDefinition (name) { return { 'field': {type: Object, label: 'Field'}, - 'field.subfield': {type: Number, label: 'Subfield'} + 'field.subfield': {type: Number, label: 'Subfield'}, + 'another': {type: String, optional: true} }[name]; }, @@ -142,6 +143,17 @@ describe('connectField', () => { expect(onChange.called).to.be.false; }); + + it('respects `required`', () => { + const Field = connectField(Test, {initialValue: true}); + + mount( + , + reactContext + ); + + expect(onChange.called).to.be.false; + }); }); context('when called with `mapProps`', () => {