我正在使用React和Formik高阶组件,为2个单独的页面提供ADD / EDIT功能。
create
由可重用的模态组件处理。
Edit
由启用forM的EditToggle按钮处理。
问题: 在下面的代码段中,当我创建所有内容时,一切正常。很好,没有错误没有问题。但是,当我编辑时,我没有执行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;