在页面中,我有一个指向另一个列表的按钮,显示过滤后的结果:
<Button
color="primary"
component={Link}
to={{
pathname: '/jobseekers',
search: `filter=${JSON.stringify({ skills: record.id })}`,
}}
>
Job Seekers
</Button>
但是,当我单击
jobseekers
资源的菜单时,我会得到过滤后的结果。它将 url 中的过滤选项传递到后端,我不知道如何在单击菜单上的 jobseeks
时重置它们。
我在列表中尝试了这些,但它们没有效果,它说
setFilters
不是一个函数,控制台还显示 listContext
的过滤器值为空
import { useListContext } from 'react-admin';
import { useEffect } from 'react';
const MemberList = ({ permissions, hasDelete, hasEdit, hasShow, resource, ...props }) => {
const listContext = useListContext();
listContext.setFilters({}, []);
useEffect(() => {
listContext.filterValues = null
listContex.tsetFilters({}, []);
console.log("mem list context:",listContext)
}, [listContext, props]);
我不知道该怎么办。
来自官方文档重置菜单上的过滤器单击:
默认情况下,单击列表页面的
<Menu.Item >
将打开列表,其中的过滤器与用户上次看到它们时应用的过滤器相同。这通常是预期的行为,但您的用户可能更喜欢单击菜单项来重置列表过滤器。
只需使用空的
filter
查询参数来强制空过滤器:
<Menu.Item
to="/posts?filter=%7B%7D" // %7B%7D is JSON.stringify({})
primaryText="Posts"
leftIcon={<BookIcon />}
/>