React Admin - 根据其他资源为过滤器输入

React Admin - Make input for filter based on other resource

我正在使用 React Admin 制作一个仪表板,我有这个带状态字段的 Lead 资源,它是根据另一个资源 Call 计算的,我想为 Lead 的列表制作一个过滤器组件。它的工作方式是,对于每个线索,我查询与该线索关联的最后一次调用(按日期字段排序)并获取其状态。潜在客户状态是最后一次通话的状态。

{ filter: { lead }, sort: { date: -1 }, limit: 1 }

线索状态查询

我使用此查询创建了一个字段(出现在列表中单个潜在客户的行中),并且想知道如何创建一个输入组件以用作列表中的过滤器。我知道这种模式很奇怪,但由于它的结构,很难在后端更改它。我乐于接受有关如何改变这种混乱的计算字段情况的建议,但正如我所说,我对知道如何创建输入组件感到满意。

我要使用的解决方案是计算域。在我的例子中,当我使用 MongoDB 时,它将通过聚合管道完成。由于我使用的是 REST 而不是 GraphQL,因此我不能使用仅在需要状态字段时调用的解析器,有时会导致不需要的聚合(获取给定潜在客户的最后一次调用)。但是,它不会产生额外的往返 - 而是只会在数据库中消耗更多的处理时间 - react-admin 通过引用计算此字段是必需的。状态是一个重要的字段,无论如何通常都需要。