如何删除react-admin列表的过滤器

问题描述 投票:0回答:1

在页面中,我有一个指向另一个列表的按钮,显示过滤后的结果:

 <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]);

我不知道该怎么办。

react-admin
1个回答
0
投票

来自官方文档重置菜单上的过滤器单击

默认情况下,单击列表页面的

<Menu.Item >
将打开列表,其中的过滤器与用户上次看到它们时应用的过滤器相同。这通常是预期的行为,但您的用户可能更喜欢单击菜单项来重置列表过滤器。

只需使用空的

filter
查询参数来强制空过滤器:

<Menu.Item
    to="/posts?filter=%7B%7D" // %7B%7D is JSON.stringify({})
    primaryText="Posts"
    leftIcon={<BookIcon />}
/>
© www.soinside.com 2019 - 2024. All rights reserved.