【问题标题】:Embed a list/datagrid inside an edit form在编辑表单中嵌入列表/数据网格
【发布时间】:2020-11-24 10:38:44
【问题描述】:

我是 reactreact-admin 的新手。

我正在尝试在 Edit 表单中嵌入 Datagrid

Edit 表单道具 (record) 有一个子对象数组,因此我不需要使用 ReferenceManyField 或类似的东西从 API 加载相关记录。

但我似乎找不到如何将记录的数组引用为列表的ListProp

如果有人有任何例子,那就太好了。

谢谢

【问题讨论】:

  • 如果您至少提供一些伪代码,了解您的最终目标是什么会很有用。

标签: react-admin


【解决方案1】:

我正在尝试在 Edit 表单中嵌入 Datagrid

这两个组件的方式截然不同:

  1. how the components were built而言:

    • <Datagrid>
      它是一个 iterator 组件:它接收一个 id 数组 和一个 数据存储,并且应该遍历 id 以显示每个记录。

      另一个迭代器组件的例子是<SingleFieldList>

    • <Edit>
      Edit 显示一个使用从 API 获取的 record 初始化的表单。 <Edit> 组件实际上将表单的实际呈现委托给了一个表单组件——通常是 <SimpleForm>(因此实际上您可以更改子组件)。

  2. mapping API endpoints而言:

    • <Datagrid>
      它通常用于Read 操作,因此用于获取数据列表的端点,例如/users/books。理解这一点将帮助您了解此组件为何(或如何)期望它接受的那种props

    • <Edit>
      它实际上用于Update 操作,因此用于获取一个(特定)数据对象的端点,例如/users/1/books/12。本质上,您获取的是特定用户或图书(而不是整个列表)。

因此,有了这种理解和解释,简单的答案是......
不,您不能在 Edit 表单中嵌入 Datagrid

这实际上要求您重新编写这两个组件,这违背了首先使用它们的本质(对于这种情况)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多