【发布时间】:2019-02-20 08:37:38
【问题描述】:
我正在使用 Redux-form 来编辑客人信息。当离开一个字段时,该字段的内容会通过一个简单的补丁请求修补给客人,并更新商店。我遇到的问题是,如果我使用同时编辑多个字段的 Google 表单,onBlur 函数也会同时发送所有请求。这会触发错误:
Unhandled Rejection (Error): Guest is already patching
我怎样才能使客人可以并行更新?
export function patchGuest(guest) {
return (dispatch, getState) => {
if (shouldPatchGuest(getState())) {
dispatch(apiPatchGuest());
return BookingApi.patchGuest(guest.id, guest.json())
.then(response => {
const json = response.data;
const updatedGuest = Guest.asGuest(json);
dispatch(setStateUpdateGuest(updatedGuest));
})
.catch(err => {
dispatch(apiError(err));
throw err;
});
}
return Promise.reject(new Error('Guest is already patching'));
};
}
-
patchOnBlur = (event) => {
const { meta: { dirty, error }, dispatch, currentGuest, fieldName } = this.props;
if (dirty && !error) {
const patched = currentGuest.patch({
[fieldName]: event.target.value
});
dispatch(patchGuest(patched));
}
};
提前致谢。
【问题讨论】:
标签: javascript reactjs redux redux-form