在提交更新现有值的表单时,我分派了一个 redux 操作创建者。
<Form onSubmit={onFormSubmit} destroyOnUnregister>
{({dirty, invalid, handleSubmit}) =>
...
<Button
onClick={handleSubmit}
disabled={invalid || !dirty}>
Save
</Button>
}
当后端收到表单值时,服务器以更新的数据进行响应,react-final-form 将其解释为提交错误(invalid
来自 react-final-form 的 prop 保持不变true
,即使表单已成功提交)。我怎样才能防止这种行为?
我一次只更新一个字段,即name
在提交表单时,但服务器响应包含整个数据片段以更新 redux 存储)。我得到的验证错误是:
"submitErrors": {
"data": {
"id": 1,
"name": "Company 1",
"country": "USA",
"city": "New York",
...
...
"createdAt": "2020-08-06",
"updatedAt": "2020-08-06",
"deletedAt": null
},
"type": "company/UPDATE_INFO_SUCCESS"
}
请注意,该company/UPDATE_INFO_SUCCESS
操作已被触发。
我确实在有关表单提交的文档中看到了以下部分
3. 与 Promise 异步返回一个 Promise<?Object>,它在成功时解析为没有值,或者在失败时解析为提交错误的对象。它解决错误的原因是在出现服务器或通信错误时留下拒绝。
但这种行为是非常不可取的。