Custom Field Components
If you would like to create your own custom component, it would be ideal to extend FieldMixin.
This mixin contains many helper functions for interacting with a form.
FieldMixin
FieldMixin is the base of each Field component. It talks to the Form through its context, and attaches all methods from
its context to this.
Helper functions
getField(name=this.props.name): asks the form for a field's data
initField(data): tells the form to initialize a field with this data.
By default, it will include name, value, validator from its props.
setHasBeenTouched({name=this.props.name, touched=true}={}): tells the form that the field has been touched/edited.
This is useful for fields that are required and you want to prompt the user to edit a field,
but you do not want to show an error when the user loads the form.
setField({name=this.props.name, ...rest}={}): tells the form to set the field data.
By default, it will include the name. Anything else must be passed in the object.
removeField({name=this.props.name}): tells the form to remove a field. By default, it will use the name prop.
isSubmitting(): Asks the form if it is currently being submitted.
canSubmit(): Asks the form whether or not it can be submitted.
submit(): Tells the form to submit.
This will call the submit prop passed to the Form component