获取 ReferenceManyField 计数?
Get ReferenceManyField Count?
如何显示 "ReferenceManyField" 组件的计数?
事情是这样的,我正在列出组织,我想获得每个组织的用户数。
获取组织:
GET /organizations?filter={}&range=[0,24]&sort=["name","ASC"]
获取每个组织的用户:
...
GET /users?filter={"uuid_organization":"1117b0a0-6ec7-40e3-9ee6-49d121c27111"}&range=[0,99]&sort=["email","ASC"]
...
<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>
我不确定我是否应该这样做,这似乎效率低下且矫枉过正。你怎么看?
提前致谢。
您选择的方法是 react-admin
实现它以通过外键获取连接数据的方式,恕我直言,这并不过分,因为在数据库级别您仍然需要查询另一个 table.
根据documentation,
响应格式 GET_MANY_REFERENCE
有一个额外的响应 属性 称为 total
:
GET_MANY_REFERENCE { data: {Record[]}, total: {int} }
ReferenceManyField
字段组件使用此响应格式检索数据,使用当前记录 ID 作为引用资源的外键 (parent id)。
深入研究 react-admin
code latest version 2.9.0 我看到 ReferenceManyField
将道具传递给它 children 并且如何处理数据取决于您(例如 List
, DataGrid
) 并且道具之一是 total
(记录数),默认情况下传递给 Pagination
组件。
如果您不想使用其他任何东西,您可以创建自己的简单功能组件来处理这些道具:
import React from 'react';
const UserTotal = props => <div>User count: {props.total}</div>;
export default UserTotal;
以及您参考字段的用法:
<ReferenceManyField
label="Users"
reference="users"
target="uuid_organization"
sort={{ field: 'email', order: 'ASC' }}
>
<UserTotal />
</ReferenceManyField>
如何显示 "ReferenceManyField" 组件的计数?
事情是这样的,我正在列出组织,我想获得每个组织的用户数。
获取组织:
GET /organizations?filter={}&range=[0,24]&sort=["name","ASC"]
获取每个组织的用户:
...
GET /users?filter={"uuid_organization":"1117b0a0-6ec7-40e3-9ee6-49d121c27111"}&range=[0,99]&sort=["email","ASC"]
...
<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>
我不确定我是否应该这样做,这似乎效率低下且矫枉过正。你怎么看?
提前致谢。
您选择的方法是 react-admin
实现它以通过外键获取连接数据的方式,恕我直言,这并不过分,因为在数据库级别您仍然需要查询另一个 table.
根据documentation,
响应格式 GET_MANY_REFERENCE
有一个额外的响应 属性 称为 total
:
GET_MANY_REFERENCE { data: {Record[]}, total: {int} }
ReferenceManyField
字段组件使用此响应格式检索数据,使用当前记录 ID 作为引用资源的外键 (parent id)。
深入研究 react-admin
code latest version 2.9.0 我看到 ReferenceManyField
将道具传递给它 children 并且如何处理数据取决于您(例如 List
, DataGrid
) 并且道具之一是 total
(记录数),默认情况下传递给 Pagination
组件。
如果您不想使用其他任何东西,您可以创建自己的简单功能组件来处理这些道具:
import React from 'react';
const UserTotal = props => <div>User count: {props.total}</div>;
export default UserTotal;
以及您参考字段的用法:
<ReferenceManyField
label="Users"
reference="users"
target="uuid_organization"
sort={{ field: 'email', order: 'ASC' }}
>
<UserTotal />
</ReferenceManyField>