Как добавить постоянную функцию фильтра в представление списка в реакции-администратора? - PullRequest
3 голосов
/ 13 февраля 2020

Я представляю список реагирующих администраторов. Я хочу отображать только записи со значением состояния> 2. status - это настраиваемое поле.

Раздел постоянных фильтров в документации поact-admin (см. https://marmelab.com/react-admin/List.html) относится только к stati c фильтрам, которые проверяют определенные c значение поля типа

export const PostList = (props) => (
    <List {...props} filter={{ is_published: true }}>
        ...
    </List>
);

, но я бы хотел передать функцию фильтра, например:

export const PostList = (props) => (
    <List {...props} filter={()=>(status.id > 2)}>
        ...
    </List>
);

К сожалению, это не работает. status неизвестно, и даже если я верну статистику c true или false, это не повлияет на фильтрацию.

Есть ли другой способ или обходной путь?

1 Ответ

1 голос
/ 13 февраля 2020

React-admin не знает, как ваш API выполняет запросы «больше, чем» или «меньше, чем» (потому что для этого нет стандарта). Постоянные фильтрыact-admin передаются вашему dataProvider, который передает их вашему API.

Поэтому я советую вам использовать специальный ключ фильтра в вашем списке следующим образом:

export const PostList = (props) => (
    <List {...props} filter={{ status_id_gt: 2 }}>
        ...
    </List>
);

Затем в вашем dataProvider определите использование этого фильтра и преобразуйте его во что угодно Ваш API ожидает фильтра «больше чем».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...