如何将列表行为添加到 ReferenceManyField?

How to add List behavior to ReferenceManyField?

我有一个包含 6k 个与资源相关的条目的列表。

我希望能够在 TabbedForm/FormTab 中列出、搜索和分页它们。 ReferenceManyField 显示的条目数量有限。

扩展 ReferenceManyField 或改用 List 的推荐方法是什么?

您可以使用 DataGrid 组件来处理大量条目。我认为您可能对 List 感到困惑。 List 仅获取记录,实际呈现由 DataGrid 完成。

ReferenceManyField 接受过滤器、排序等参数,您可以使用这些参数来控制从 API.

中获取的记录数

根据这两个问题:https://github.com/marmelab/admin-on-rest/issues/998 and https://github.com/marmelab/admin-on-rest/issues/561 你不能在 ReferenceManyField 中使用 List,建议的方法是使用一个按钮将你重定向到相关的 [=12] =] 具有适当过滤器的组件。

示例:

class LinkToRelatedReviews extends React.Component {
    render() {
    return (<FlatButton
        primary
        label={ translate("Full list of reviews by user") }
        icon={<ReviewsIcon />}
        containerElement={
            <Link to={{
                pathname: '/reviews',
                search: stringify({ filter: JSON.stringify({ userId: [this.props.params.id] }), page: 1 }),
            }}
        />}
    />)
    }
}

export default LinkToRelatedReviews;

类似的东西可以放在 UsersShow 组件中

<LinkToRelatedReviews params={props.match.params}/>

DataGrid 下不提供分页,但可以为您获取一些结果。

您还可以通过导航至:https://marmelab.com/admin-on-rest-demo/#/segments 并单击“客户”来查看它的运行情况。这会将您重定向到按特定细分筛选的 CustomersList。