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
我正在尝试遵循 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()
.
示例中是否遗漏了什么?
附加信息
我正在使用 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