如何解决在 ListContextProvider 中使用 useListController 不提供数据
我正在使用 react-admin
,但遇到了 useListController
没有在 ListContextProvider
内提供任何数据的问题,即使 useListContext
提供。
const query = useQuery({
type: 'getList',resource: 'dashboard/summary',payload: {
pagination: { page,perPage },sort: { field: 'createdAt',order: 'DESC' },filter
},});
// more code ....
return (
<ListContextProvider
value={{
...query,setPage,basePath,data: keyBy(query.data,'id'),ids: query.data.map(({ id }) => id),currentSort: { field: 'id',order: 'ASC' },selectedIds: [],resource,page,perPage,setFilters
}}
>
<SummaryList onSearch={onSearch} filter={filter} />
</ListContextProvider>
);
内部SummaryList
const context = useListContext();
const cp = useListController(context);
console.log(context);
console.log(cp);
控制器对象
basePath: "/dashboard/summary"
currentSort: Object { field: "id",order: "ASC" }
data: Object { }
defaultTitle: "Dashboard/summaries"
displayedFilters: Object { }
error: null
exporter: function defaultExporter(data,_,__,resource)
filter: undefined
filterValues: Object { }
hasCreate: undefined
hideFilter: function hideFilter(filterName)
ids: Array []
loaded: true
loading: false
onSelect: function select(newIds)
onToggleItem: function toggle(id)
onUnselectItems: function clearSelection()
page: 1
perPage: 10
resource: "dashboard/summary"
selectedIds: Array []
setFilters: function setFilters(filter,displayedFilters,debounce)
setPage: function setPage(newPage)
setPerPage: function setPerPage(newPerPage)
setSort: function setSort(sort,order)
showFilter: function showFilter(filterName,defaultValue)
total: undefined
上下文对象
{
"data": {
// the data which I omitted
},"total": 4,"loading": false,"loaded": true,"basePath": "/dashboard/summary","ids": [
"2021-05-01","2021-05-02","2021-05-03","2021-05-04"
],"currentSort": {
"field": "id","order": "ASC"
},"selectedIds": [],"resource": "dashboard/summary","page": 1,"perPage": 10
}
我应该如何使用 useListController
?
解决方法
useListController
获取 List 道具(和位置参数),使用它从 dataProvider 获取数据,并将其传递给 ListContext。
通过调用 useListContext(),您可以访问由 useListController
构建的值和回调。
在您的示例中,您正在手动构建 ListContext,因此您根本不需要 useListController
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。