问题描述
我想用“statut”过滤。 这就是我的成员 JSON 的样子。 JSON
我设法访问了 id(示例中为 7)并且当 id == 7 时过滤器工作良好 Filter work fine code
但是,当我尝试检索成员的“状态”时,它不起作用。 Does not work Does not work
你有什么想法吗?
对不起我的英语。 ^^
解决方法
import * as React from "react";
import AccessTimeIcon from "@material-ui/icons/AccessTime";
import MonetizationOnIcon from "@material-ui/icons/MonetizationOnOutlined";
import MailIcon from "@material-ui/icons/MailOutline";
import { FilterList,FilterListItem,FilterLiveSearch } from "react-admin";
import {
endOfYesterday,startOfWeek,subWeeks,startOfMonth,subMonths,} from "date-fns";
import { Card as MuiCard,CardContent,withStyles } from "@material-ui/core";
const LastVisitedFilter = () => (
<FilterList label="Dernières visites" icon={<AccessTimeIcon />}>
<FilterListItem
label="Aujourd'hui"
value={{
created_at_gte: endOfYesterday().toISOString(),created_at_lte: undefined,}}
/>
<FilterListItem
label="Cette semaine"
value={{
created_at_gte: startOfWeek(new Date()).toISOString(),}}
/>
<FilterListItem
label="La semaine dernière"
value={{
created_at_gte: subWeeks(startOfWeek(new Date()),1).toISOString(),created_at_lte: startOfWeek(new Date()).toISOString(),}}
/>
<FilterListItem
label="Ce mois-ci"
value={{
created_at_gte: startOfMonth(new Date()).toISOString(),}}
/>
<FilterListItem
label="Le mois dernier"
value={{
created_at_gte: subMonths(startOfMonth(new Date()),created_at_lte: startOfMonth(new Date()).toISOString(),}}
/>
</FilterList>
);
const HasOrderedFilter = () => (
<FilterList label="Has ordered" icon={<MonetizationOnIcon />}>
<FilterListItem
label="True"
value={{
nb_commands_gte: 1,nb_commands_lte: undefined,}}
/>
<FilterListItem
label="False"
value={{
nb_commands_gte: undefined,nb_commands_lte: 0,}}
/>
</FilterList>
);
const HasNewsletterFilter = () => (
<FilterList label="Has newsletter" icon={<MailIcon />}>
<FilterListItem label="True" value={{ has_newsletter: true }} />
<FilterListItem label="False" value={{ has_newsletter: false }} />
</FilterList>
);
const KichtaStatut = () => (
<FilterList label="Statut kichta" icon={<MailIcon />}>
<FilterListItem label="Bleu" value={{ informations_personnelles.statut: "Vert" }} />
</FilterList>
);
const Card = withStyles((theme) => ({
root: {
[theme.breakpoints.up("sm")]: {
order: -1,// display on the left rather than on the right of the list
width: "15em",marginRight: "1em",},[theme.breakpoints.down("sm")]: {
display: "none",}))(MuiCard);
const FilterSidebar = () => (
<Card>
<CardContent>
<FilterLiveSearch label="Rechercher par ID" source="id" />
<LastVisitedFilter />
<KichtaStatut />
{/* <HasOrderedFilter /> */}
{/* <HasNewsletterFilter /> */}
</CardContent>
</Card>
);
enter code here
export { FilterSidebar };
它是这个过滤器 =>
const KichtaStatut = () => (
<FilterList label="Statut kichta" icon={<MailIcon />}>
<FilterListItem label="Bleu" value={{ informations_personnelles.statut: "Vert" }} />
</FilterList>
);
,
我认为您发布的代码可能存在编译错误。 试试这个:
const KichtaStatut = () => (
<FilterList label="Statut kichta" icon={<MailIcon />}>
<FilterListItem
label="Bleu"
// Note the quotes around the field name
value={{ 'informations_personnelles.statut': "Vert" }}
/>
</FilterList>
);