如何获取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
如何获取当前的过滤器?
可以从属性中获取过滤器值:filterValues: {q: "test"}
https://marmelab.com/react-admin/List.html#empty-page