如何显示“ReferenceManyField”组件的计数?
事情是这样的,我列出了组织,我希望每个组织都有他们的用户数。
获取组织:
GET /organizations?filter={}&range=[0,24]&sort=["name","ASC"]
Run Code Online (Sandbox Code Playgroud)
获取每个组织的用户:
...
GET /users?filter={"uuid_organization":"1117b0a0-6ec7-40e3-9ee6-49d121c27111"}&range=[0,99]&sort=["email","ASC"]
...
Run Code Online (Sandbox Code Playgroud)
<List
{...props}
filters={<OrganizationFilter />}
sort={{ field: 'name', order: 'ASC' }}
perPage={25}
>
<Responsive
xsmall={<MobileGrid />}
medium={
<Datagrid expand={<OrganizationShow />}>
<OrganizationLinkField />
<ReferenceManyField label="Users" reference="users" target="uuid_organization" sort={{ field: 'email', order: 'ASC' }}>
// PRINT: 102 users
</ReferenceManyField>
<EditButton />
</Datagrid>
}
/>
</List>
Run Code Online (Sandbox Code Playgroud)
我不确定我是否应该这样做,这似乎效率低下且矫枉过正。你认为呢?
提前致谢。
小智 2
您选择的方法是react-admin实现它以通过外键获取连接数据的方法,恕我直言,这并不是太大的杀伤力,因为在数据库级别上您仍然需要查询其他表。
根据文档,响应格式有一个额外的响应属性,GET_MANY_REFERENCE称为total:
GET_MANY_REFERENCE { data: {Record[]}, total: {int} }
字段ReferenceManyField组件使用此响应格式来检索数据,并使用当前记录 ID 作为所引用资源的外键(父 ID)。
深入研究react-admin 最新版本 2.9.0 的代码,我发现它将ReferenceManyFieldprops 传递给它的子级,这取决于您如何处理数据(例如List, DataGrid),其中一个 props 是total(记录计数),默认情况下传递给Pagination组件。
如果您不想使用其他任何东西,您可以创建自己的简单功能组件来处理这些道具:
import React from 'react';
const UserTotal = props => <div>User count: {props.total}</div>;
export default UserTotal;
Run Code Online (Sandbox Code Playgroud)
以及您的参考字段的用法:
<ReferenceManyField
label="Users"
reference="users"
target="uuid_organization"
sort={{ field: 'email', order: 'ASC' }}
>
<UserTotal />
</ReferenceManyField>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
842 次 |
| 最近记录: |