react-admin: <Edit> 组件上的 onSuccess() 中未定义“数据”

react-admin: `data` is undefined in onSuccess() on <Edit> component

我正在尝试遵循 https://marmelab.com/react-admin/CreateEdit.html#onsuccess 中的示例。 我想在更新时通知用户记录标题。

    const onSuccess = ({ data }) => {
        console.log(data) // output: undefined
        notify(`Changes to post "${data.title}" saved`)
        redirect('/posts');
        refresh();
    };

JS总是抱怨undefined没有title属性.

根据文档,data 来自 dataProvider.update()

的响应

The onSuccess function receives the response from the dataProvider call (dataProvider.create() or dataProvider.update())...

但是,根据我的测试,onSuccess() 在提交时立即被调用,而 dataProvider.update() 在 toast 消息消失时被调用,所以 onSuccess() 没有收到结果dataProvider.update().

返回的 Promise

示例中是否遗漏了什么?

附加信息

我正在使用 react-admin v3.11.1 和 Chrome 87.0.4280.88 如果我从组件

中删除 onSuccess(),记录会正确更新

如果您处于 Edit 上下文中,则必须将 undoable={false} 设置为 Edit 组件,以防止不等待请求响应的乐观响应。

<Edit
  {...props}
  onSuccess={onSuccess}
  undoable={false}
>
    ...
</Edit>

参考:https://marmelab.com/react-admin/CreateEdit.html#undoable