我现在正在使用 react-admin 框架,当用户单击“编辑”页面上的“保存”按钮时。通常它会转到列表页面并在底部显示撤消通知,但此时服务器端会收到验证错误(例如,图像大小、文件大小)。然后,编辑页面上的所有用户输入都将丢失。
怎样才能在服务端出错的情况下还停留在编辑页面,只有服务端返回成功才进入列表页面?
如果我把 redirect = false
,即使服务端返回成功也不会进入List页面:
const CustomToolbar = props => (
<Toolbar {props} >
<SaveButton redirect={false}/>
</Toolbar>
)
最佳答案
React Admin 使用一种叫做 Optimistic Rendering 的方法: 当用户填写表单时,我们很乐观并呈现更好的结果。
通过使结果显示更快,甚至在到达 API 之前,这在全局上改善了用户体验。
不好的一面是,如果表单没有经过严格的客户端验证并且 API 抛出错误,则用户必须再次执行此操作。
从这里,我看到了您的问题的两种解决方案:
undoable={false}
禁用乐观渲染<Edit {...props} undoable={false}>
{...}
</Edit>
关于react-admin - 如果出现服务器端错误,请留在编辑页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57388160/