问题描述
我正在使用 react-admin 通过内部 API 更新数据库(不是直接从 react-admin 与之对话的服务器)。
API 调用可能由于各种原因而失败。
因此,我想保留编辑页面,直到它从正在等待内部 API 响应的服务器获得响应。
有没有办法做到这一点?
解决方法
您可以将其 mutationMode
设置为 pessimistic
。
从文档中提取:
<Edit>
视图公开了两个按钮,保存和删除,它们执行“突变”(即它们改变数据)。 React-admin 提供了三种突变模式。该模式决定了何时执行副作用(重定向、通知等):
-pessimistic
:首先将变更传递给 dataProvider。当dataProvider成功返回时,在本地应用mutation,并执行副作用。
-optimistic
:在本地应用突变并立即执行副作用。然后将变更传递给 dataProvider。如果 dataProvider 成功返回,则不会发生任何事情(因为更改已在本地应用)。如果 dataProvider 返回错误,则刷新页面并显示错误通知。
-undoable
(默认):突变在本地应用,副作用立即执行。然后显示带有撤消按钮的通知。如果用户单击撤消,则永远不会将更改发送到 dataProvider,并刷新页面。否则,在 5 秒延迟后,将更改传递给 dataProvider。如果 dataProvider 成功返回,则不会发生任何事情(因为更改已在本地应用)。如果 dataProvider 返回错误,则刷新页面并显示错误通知。