Я использую компоненты высшего порядка React и Formik, чтобы обеспечить функцию ADD / EDIT для 2 отдельных страниц.
Элемент create
обрабатывается модальным компонентом многократного использования.
Edit
, обрабатывается кнопкой EditToggle, которая включает forM.
ПРОБЛЕМА:
В приведенном ниже фрагменте кода, когда я создаю все работает. хорошо, без ошибок, без проблем. Когда я редактирую, я не выполняю оператор If. Если вы видите, что там есть отладчик, он не вызывается.
Можете ли вы увидеть, где я допустил ошибку, и скажите мне, почему код не выполняется. Спасибо.
const EnhancedNewForm = withFormik({
mapPropsToValues: ({ item }) => ({ ...item }),
validationSchema,
handleSubmit: (values, { props, setSubmitting }) => {
const { inEditMode, onEditModeToggle, doSubmit, onSave, onCancel } = props;
const save = values.id ? update : new;
if (inEditMode) {
debugger;
return save(values)
.then(() => {
setSubmitting(false);
onSave(values);
onCancel();
})
.catch(() => {
setSubmitting(false);
});
}
if (!inEditMode) {
doSubmit(save, values)
.then(() => {
setSubmitting(false);
onSave();
})
.catch(() => {
setSubmitting(false);
});
}
setSubmitting(false);
onEditModeToggle();
return false;
},
displayName: 'View' // helps with React DevTools
})(View);
return EnhancedNewForm;