【发布时间】:2018-12-11 23:35:45
【问题描述】:
我想在模型的<TabbedShowLayout> 中的<Show> 中有一个<List> 的相关模型,所以我可以以<Datagrid> 的方式显示相关模型并让Actions 创建或删除相关数据.类似于reviews of posters in demo app,但我可以为该海报创建一个评论,而不是只显示相关的评论。
我想知道是否可以通过仔细操作 <List> props 和 filters 将其设置为获取特定数据?如果是,如何?我正在浏览 RA 的源代码,但我不知道 <List> 如何获取数据,以及用于获取的道具是什么。
我知道我可以将用户重定向到 Reviews 列表,其中 Poster 设置为 filter,但由于我有其他相关模型,所以不能只是回顾一下,为了更好的用户体验,我认为对于用户来说最好有一个带有相关模型选项卡的<TabbedShowLayout>,其中仅包含相关模型的<List> 显示为可以执行CRUD 操作的Actions。
【问题讨论】:
-
您知道
ReferenceManyField组件吗? marmelab.com/react-admin/Fields.html#referencemanyfield -
您可以在演示中看到它的实际效果:marmelab.com/react-admin-demo/#/customers/550
-
是的,事实上我目前正在将它与
Datagrid一起使用,但不包括我想显示间接相关数据或多对多关系的用例。例如以Categories has many Product has many Reviews的demo模型为例;有很多是一对多的关系。如果在类别的Show中,我希望有一个标签,其中包含与该类别关联的评论,我需要有一个嵌套的ReferenceManyField,一个用于获取产品,另一个用于获取评论,但列名称将是产品不是评论。没有什么是标签无法解决但仍然不理想的。 -
对于多对多关系,我的后端应该返回一组相关模型 ID 以与
ReferenceArrayField一起使用,但这只能部分解决我的问题,因为我想执行像 Crate 或 Delete 这样的操作来添加或删除相关模型和ReferenceFields似乎纯粹是展示性的,带有指向相应编辑页面的链接。 -
我正在使用 v2.1.1 选项卡路由系统进行测试,我可以调整我的后端以匹配路由,以便提供相关数据以在
List中使用。我正在努力使用List而不是ReferenceFields,因为第一个提供了许多实用程序来创建、操作和搜索第二个似乎不具备的数据。
标签: list react-admin