将 <List> 过滤器值传递给操作组件 (REACT ADMIN)
Passing <List> filter values to an action component (REACTADMIN)
如何获取我的 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
如何获取我的 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