繁体   English   中英

React-Admin 列表视图的条件删除

[英]Conditional Delete for React-Admin List View

如果用户数据中的标志为真,我需要能够删除用户,如果为假,请不要删除它并显示通知。 我是 RA 的新手,没有很多 React 经验,但能够制作自定义删除按钮,可以确定所选项目是否“可删除”,但我不知道如何优雅地防止删除发生并显示一条通知,说明为什么没有删除该用户。

在我最近的尝试中,我创建了一个自定义删除按钮,我使用用户的数据来确定是否可以删除使用,然后我使用该标志将其传递给 DeleteButton 的禁用道具,但这似乎并不能阻止它从删除用户。

这是我上面描述的一个例子:

return <DeleteButton {...props} record={data} disabled={canDelete}/>

我正在使用 react-admin 3.11.2

如果您正在苦苦挣扎的是如何自己处理 DeleteButton 的 onClick 事件并取决于标志,那么我建议以下解决方案:

  1. 创建自定义按钮 - 您可以通过import { Button } from 'react-admin'来继承 react-admin 的样式
  2. 根据标志处理onClick事件 by
    2.1 如果值为 false,则有条件地显示带有您的消息的自定义Dialog
    2.2 使用useDelete钩子自己调用删除function。 更多关于钩子的信息在这里

不是一个理想的解决方案,但我使用了这种方法。 我制作了一个自定义 DeleteButton,仅当标志为真时才会显示删除图标,否则没有图标因此不允许删除发生。

const MyDeleteButton = props => {
const { record } = props;

    if (!record.isDeletable) {
        // Note, no label, just shows an icon
        return <DeleteButton {...props} label=''/>
    } else {
        return null
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM