Я создал пользовательский Toolbar
с пользовательской кнопкой на панели инструментов. Эта пользовательская кнопка должна действовать как стандартная SaveButton
, но должна выполнять дополнительные действия после отправки формы. Отправка формы возможна только в том случае, если проверка прошла успешно. Если нет, то поля, не проходящие, должны быть отмечены.
Короче говоря, моя пользовательская кнопка должна работать как встроенная SaveButton
, но позвольте мне сделать некоторые дополнительные вещи после отправки.
К сожалению, функция проверки формы не вызывается и в соответствии с флагом invalid
форма всегда недействительна. Что я делаю не так?
Вот как я реализовал пользовательскую кнопку:
const ActionButton = ({ handleSubmitWithRedirect, ...props }) => {
const form = useForm();
var formdata = form.getState().values;
const handleClick = useCallback(() => {
// Validation function of the form is NOT called, the form is always invalid... why?
if (!props.invalid) {
doSomeExtraStuff();
handleSubmitWithRedirect('list');
} else alert("Invalid!");
}, [formdata, form]);
return <SaveButton {...props} handleSubmitWithRedirect={handleClick} />;
};
Моя Toolbar
функция выглядит так:
export const MyCustomToolbar = props => (
<Toolbar {...props} >
<SaveButton
label="Save"
redirect="list"
submitOnEnter={true}
variant="outline"
/>
<ActionButton
label="Save and do extra stuff"
redirect="edit"
submitOnEnter={false}
variant="text"
/>
</Toolbar>
);