如何将List行为添加到ReferenceManyField?

时间:2017-09-19 21:44:06

标签: admin-on-rest

我有一个与资源相关的6k条目清单。

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

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

2 个答案:

答案 0 :(得分:3)

您可以将DataGrid组件用于大量条目。我认为你可能会对List感到困惑。 List仅提取记录,实际渲染由DataGrid完成。

ReferenceManyField接受过滤器,排序等参数,您可以使用这些参数来控制从API中提取的记录数。

答案 1 :(得分:2)

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

示例:

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下的{p>不提供分页但可以为您提取一些结果。

您还可以通过导航到https://marmelab.com/admin-on-rest-demo/#/segments并点击“客户”来查看其实际操作。这会将您重定向到由特定细分过滤的CustomersList。