Я использую Formik в своем приложении React.У меня есть простая форма с 3 полями.Я делаю 2 операции с этой формой.Добавить / изменить ресурсы.
Моя проблема в том, что одно поле является необязательным.То есть я никогда не должен отправлять его, если его значение равно нулю В настоящее время я отправляю пустую строку, которая является неправильной.
Я использую TS-React-Formik, и вот мой код для метода handleSubmit
:
interface IValues extends FormikValues {
name: string;
owner?: string;
groups: string[];
}
interface CreateAndEditProps {
doSubmit(service: object, values: object): AxiosResponse<string>;
onSave(values: IValues): void;
}
handleSubmit = (values: FormikValues, formikActions:FormikActions<IValues>) => {
const { doSubmit, onSave, isEditMode } = this.props;
const { setSubmitting } = formikActions;
const payload: IValues = {
name: values.name,
groups: values.groups,
owner: values.owner
};
const submitAction = isEditMode ? update : create;
return doSubmit(submitAction, payload)
.then(() => {
setSubmitting(false);
onSave(payload);
})
.catch(() => {
setSubmitting(false);
});
};
Я думал, что простое утверждение if сработает, и хотя оно работает, мне оно совсем не нравится.Позвольте мне привести пример того, почему.Если я добавлю еще 2 необязательных поля, как я собираюсь сделать, в аналогичной форме, я не хочу делать несколько операторов if для достижения этой цели.
Если бы вы могли придумать более элегантный и СУХОЙ способделать это, это было бы удивительно.Спасибо за ваше время.