如何解决react-admin:在 <Edit> 组件的 onSuccess() 中未定义 `data` 其他信息
我正在尝试遵循 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()
onSuccess 函数接收来自 dataProvider 调用的响应(dataProvider.create() 或 dataProvider.update())...
但是,根据我的测试,onSuccess()
在提交时立即被调用,而 dataProvider.update()
在 toast 消息消失时被调用,因此 onSuccess()
没有收到 Promise 的结果由 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。