react-admin - 如果出现服务器端错误,请留在编辑页面

标签 react-admin

我现在正在使用 react-admin 框架,当用户单击“编辑”页面上的“保存”按钮时。通常它会转到列表页面并在底部显示撤消通知,但此时服务器端会收到验证错误(例如,图像大小、文件大小)。然后,编辑页面上的所有用户输入都将丢失。

怎样才能在服务端出错的情况下还停留在编辑页面,只有服务端返回成功才进入列表页面?

如果我把 redirect = false ,即使服务端返回成功也不会进入List页面:

const CustomToolbar = props => (
    <Toolbar {props} >
        <SaveButton redirect={false}/>
    </Toolbar>
)

最佳答案

React Admin 使用一种叫做 Optimistic Rendering 的方法: 当用户填写表单时,我们很乐观并呈现更好的结果。

通过使结果显示更快,甚至在到达 API 之前,这在全局上改善了用户体验。

不好的一面是,如果表单没有经过严格的客户端验证并且 API 抛出错误,则用户必须再次执行此操作。

从这里,我看到了您的问题的两种解决方案:

  • 实现 more strict client-side validation您的表格
  • 通过指定 undoable={false} 禁用乐观渲染
  • <Edit {...props} undoable={false}>
        {...}
    </Edit>
    

    关于react-admin - 如果出现服务器端错误,请留在编辑页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57388160/

    相关文章:

    Django-rest-framework + React-Admin : URL Backslash issue

    electron - 错误: useForm must be used inside of a <Form> component - Electron

    reactjs - 在react-admin中通过REST API进行基于cookie的身份验证

    react-admin - 如何从 react-admin 框架中的路由中删除哈希

    reactjs - 如何在对其中的 ListItem 之一执行操作后更新 ReferenceManyField

    reactjs - ra-data-graphql-simple 找不到资源

    react-admin - 嵌套引用字段

    reactjs - 如何设置 react-admin Datagrid 标题的样式?

    javascript - 我需要使用 React 和 MongoDB 创建管理页面