【问题标题】:Stay on the edit page if get server side error如果出现服务器端错误,请留在编辑页面
【发布时间】:2019-08-07 06:26:43
【问题描述】:

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

如何在服务端出错的情况下仍然留在编辑页面,只有在服务端返回成功时才进入列表页面?

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

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

【问题讨论】:

    标签: react-admin


    【解决方案1】:

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

    即使在到达 API 之前,也可以更快地显示结果,从而全面改善用户体验。

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      相关资源
      最近更新 更多