如何在 react-admin 中禁用乐观 UI 更新?

How to disable optimistic UI updates in react-admin?

是否可以在 react-admin 中禁用 optimistic UI 或者是否可以在运行时配置?

在编辑组件中禁用撤消属性:

<Edit undoable={false} title={<EditTitle />} actions={<EditActions />} {...props}>

如您所知,无法在 Create 组件上设置 undoable。如果您的 props 不同于 Create 页面而不是禁用它,这里有一种处理乐观呈现的方法。

这是在 <Show/> 上处理乐观渲染的示例:

const ItemShow = (props) => {
  const record = props;
  return (
    <Show
      {...props}
    >
      <ItemCreatedScreen />
    </Show>
  );
};

const ItemCreatedScreen = ({ record }) => {
  if (record.isFromCreatePage) {
    return <Loading />;
  } else {
    return <ItemView record={record} />;
  }
};

来自 Create 组件形式的自定义道具 isFromCreatePage 应该可以帮助您确定道具是否确实来自“创建”页面。

Optimistic Rendering 会在几秒后将请求发送到 API,同时,UI 可以显示 <Loading/> 标志,持续时间很短我可能添加。之后请求从服务器获取数据并将其传递到 <ItemView/> 页面。