react material ui validation Как вызывать процесс валидации программно, пример кода isFormValid()
Primary tabs
Речь идет об использовании пакета react-material-ui-form-validator, а главная идея состоит в использовании вызова isFormValid(false) на ссылке, которая указывает на форму:
var Form = React.createRef(); //.......... return ( <ValidatorForm ref={Form} // .........
И где-то где вам нужно в коде этого же компонента вы можете вызвать процесс валидации, используя ссылку так:
Form.current.isFormValid(false);
-- этот вызов покажет ошибки, но не вызовет submit (событие отправки формы), что может быть неудобным, если напр. у вас добавлена прокрутка в коллбеке пропса onError к полю с ошибкой, чтобы прокрутка заработала сразу используйте вызов:
Form.current.submit();
-- к этому момент форма должна находится в состоянии ошибки (т.е. валидаторы, должны быть определены, если вы вызываете эту штуку с целью показать ошибки), они должны быть не просто определены, но хотя бы один из них должен возвращать для данного состояния формы false - в этом случае событие отправки формы будет перехвачено внутри react-material-ui-form-validator.
Иначе возможна проблема (как раз в случае, если отправка все же происходит, например массив ошибок есть, но все валидаторы возвращают true). которая впрочем, довольно легко решается проверкой в обработчике.
- Log in to post comments
- 1921 reads