Skip to content

Sync error messages (update localization) #469

@zeljkohuber

Description

@zeljkohuber

Is there a way to mobx-react-form error messages with validator plugin error messages? I'm using DVR and when field is validated error message is shown. If I change my localization, error message won't update because Field has its error property already set. This is my current implementation:

class FieldBase extends Field {
    constructor(props) {
        super(props);

        validatorService.on('onMessageSourceChange', async () => { 
            if (this.showError) {
                await this.validate();    
                this.showErrors(!this.isValid);                
            }
        });
    }

    @computed get localizedError() {
        return _.replace(this.error, /\[(.*)\]/, function (match, value) {
            return localizationService.t(value);
        })
    }
}

Problem is that I need to force validate field again to get new error messages. Language is changed when validatorjs.useLang('language'); is called and validatorjs has its new messages after that but I can't immediatelly update displayed error message because Field is not synced. This is not a big problem for now, but I'm going to have async validations which might be a problem to re-validate.

Is there a way to call something like syncPluginErrorMessages() where Field or Form would update its error message? If not, is there a change something like this could be added?

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions