У меня есть функциональный компонент, который использует react-jsonschema-form
, и мне нужно отменить функцию, которую он запускает, для проверки себя. Компонент выглядит примерно так:
const Form = props => {
const validate = (formData, errors) => {
// run some code to validate the form
return errors
}
return (
<SchemaForm
validate={(formData, errors) => validate(formData, errors)}
/>
)
Я пытался использовать следующие подходы:
- , оборачивая функцию проверки в debounce:
const debouncedValidate = (formData, errors) => debounce(validate(formData, errors), 300);
return (
<SchemaForm
validate={(formData, errors) => validate(formData, errors)}
/>
)
... попробовал использовать Ref:
const debouncedValidate = useRef(debounce((formData, errors) => validate(formData, errors), 300);
return (
<SchemaForm
validate={(formData, errors) => debouncedValidate}
/>
)
... попытался использовать обратный вызов:
const debouncedValidate = useCallback(
debounce((formData, errors) => validate(formData, errors), 300),
[formData, errors]
);
return (
<SchemaForm
validate={(formData, errors) => debouncedValidate}
/>
)
1 привел к TypeError: Expected a function
. Лода sh ожидает функцию без аргументов, как показано в их документах: _.debounce(func, [wait=0], [options={}])
. Как 2, так и 3 приводят к ошибке Uncaught ReferenceError: formData is not defined
.
Будем весьма благодарны за любые предложения относительно того, как решить эту проблему.