Исключить идентификаторы из (постоянного) фильтра в компоненте List - PullRequest
0 голосов
/ 16 сентября 2018

Этот вопрос относится к реагирующему администратору и связанным с ним компонентам

Как исключить идентификаторы из реквизита фильтра компонента List? Приведенный ниже код даст мне список записей с идентификаторами 1,3 и 5. Я хочу сделать обратное и исключить их из списка.

Если не существует простого способа сделать это, как я могу получить массив идентификаторов записей в ресурсе? Заранее спасибо!

<List {...props}  filter={{ id : [1,3,5] }} >
  <Datagrid>
    <TextField source="id" />
    <TextField source="title" />
    <TextField source="body" />
  </Datagrid>
</List>

1 Ответ

0 голосов
/ 17 сентября 2018

Предположим, в вашем штате у вас есть следующие идентификаторы

state = {
   allID: [1,2,3,4,5,6,7,8 ... n],
};

Теперь, если вы хотите показать все, кроме идентификатора 3,5, 7 Вы можете сделать следующее

render() {
  const { allID } = this.state;
  const IdToExclude = [3,5,7];
  const filteredID = allID.filter(id => {
     return !IdToExclude.includes(id)
  });
  return (
      <List {...props}  filter={{ id : filteredID }} >
        <Datagrid>
           <TextField source="id" />
           <TextField source="title" />
           <TextField source="body" />
        </Datagrid>
      </List>
  );
}

СейчасЯ использую Array.includes, чтобы исключить из вашего списка идентификаторов дополнительную информацию. Массив MDN включает

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