我有一个与资源相关的6k条目清单。
我希望能够在TabbedForm / FormTab中列出,搜索和分页。 ReferenceManyField显示有限数量的条目。
扩展ReferenceManyField或使用List的推荐方法是什么?
答案 0 :(得分:3)
您可以将DataGrid组件用于大量条目。我认为你可能会对List感到困惑。 List仅提取记录,实际渲染由DataGrid完成。
ReferenceManyField接受过滤器,排序等参数,您可以使用这些参数来控制从API中提取的记录数。
答案 1 :(得分:2)
根据这两个问题:https://github.com/marmelab/admin-on-rest/issues/998和https://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。