将 过滤值传递给操作组件(REACTADMIN)

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

如何获取ReactAdmin元素的过滤器值?我可以获取列表的大小,但是我不知道如何获取过滤器,因此可以传递给我的自定义操作组件:

在我的App.tsx中:

const MyActions = ({
    total,
    filters,
    filterValues,
    ...rest
}) => (
    <MyButton listsize={total} filters={filters} filterValues={filterValues} />
);

export const MyFilter = (props) => (
    <Filter {...props}>
        <TextInput label="Search" source="q" alwaysOn/>
    </Filter>
);


<List {...props} actions={<MyActions {...props}/>} title="My List" perPage={25} filters={<MyFilter/>}>
        <Datagrid rowClick="edit">
            <TextField source="id"/>
            <TextField source="name"/>
            <TextField source="info"/>
        </Datagrid>
    </List>
);

我的操作按钮组件;

class MyButton extends React.Component {

    constructor(props) {
        super(props)
    }

    render() {
    console.log('this.props.listsize : ' + JSON.stringify(this.props.listsize));
    console.log('this.props.filters : ' + this.props.filters);
console.log('this.props.filterValues.q : ' + this.props.filterValues.q);
        return (
            <anyContent...>
        )
    }
}

控制台输出为:

this.props.listsize : 145 (Size is correct) 

this.props.filters : [object Object]

this.props.filters.filterValues.q : undefined

如何获取当前的过滤器?

react-admin
1个回答
0
投票

可以从属性中获取过滤器值:filterValues: {q: "test"}https://marmelab.com/react-admin/List.html#empty-page

© www.soinside.com 2019 - 2024. All rights reserved.