calidation icon indicating copy to clipboard operation
calidation copied to clipboard

Validation errors are not updated after config and field change

Open meehaws opened this issue 5 years ago • 2 comments

Hi,

I have a dynamic content of my form, which is rendered based on type (it is provided from some drop down). Form inputs will change based on that type and so will do config.

What I observe after changing type to a different one, is that inside Validation component values:

  • fields will change to the new once
  • config will change to the new values
  • errors will stay as they were before changing type
<ValidatorsProvider validators={allValidators}>
                                <Form onSubmit={onSubmit} id={'someId'} className={classes.content}>
                                    <Validation config={selectConfigBasedOntype(type))}
                                                initialValues={defaults}>
                                        {generateDynamicFieldsBasedOnType}
                                    </Validation>
                                </Form>
                            </ValidatorsProvider>

meehaws avatar Jun 07 '19 12:06 meehaws

I just encountered the same issue, and managed to solve it by providing a different key to Validation. The issue is mainly that config is registered with Form on Validation.componentDidMount. By providing the different key, we're forcing react to unmount the current Validation, and mounting a new one

serenata-keith-mifsud avatar Jun 11 '19 15:06 serenata-keith-mifsud

@meehaws You're correct, the config object is only utilized once at registration. But as @serenata-keith-mifsud suggested, a key to force a unregister/register to occur will reset those fields.

We could potentially add a feature to allow for the config prop to be updated and to handle this. However, it could potentially run into issue of wiping out form data unintentionally. If you want to create a PR, we'd be happy to review it. Just be sure to thoroughly test it.

ArrayKnight avatar Jun 13 '19 16:06 ArrayKnight