Как сделать так, чтобы моя настраиваемая кнопка на панели инструментов использовала функцию проверки формы вact-admin? - PullRequest
1 голос
/ 21 февраля 2020

Я создал пользовательский 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>
);
...