#javascript #arrays #reactjs #filtering #antd
#javascript #массивы #reactjs #фильтрация #antd
Вопрос:
Я пытаюсь реализовать функциональность фильтрации таблиц проектирования ant в своем компоненте react, однако у меня возникла проблема с отображением фактических значений данных, которые я пытаюсь отфильтровать. Данные заполняются в массиве (this.state.data ), а в раскрывающемся списке отображается фактическая длина данных в массиве, но нет фактических видимых данных / значений имен, которые я пытаюсь отобразить. Любая помощь будет высоко оценена.
const registeredUsersColumns = [
{
title: "Name",
dataIndex: "Name",
key: "1",
filters: this.state.data,
onFilter: (value, record) => record.Name.indexOf(value) === 0,
}]
Комментарии:
1. как выглядит ваш массив данных?
2. @MohammadFaisal [{ FCR_EmailAddress: «testuser92@gmail.com » FCR_PhoneNumber: «17248597817» Id: 1 Имя: «Тестовый пользователь» OIC_Name: «jdshd5» OIC_StaffID: 123 PNC_Id: «hk562» }]
3. этот код не имеет смысла. можете ли вы это объяснить? record.Name.indexOf(значение) === 0,
4. @MohammadFaisal Это из документации по фильтрации таблиц ant designs. Запись представляет объект в индексе массива, и я считаю, что значение представляет dataIndex, на который я ориентируюсь «Имя». Вот изолированная среда для кода: codesandbox.io/s/yttnl
Ответ №1:
OnFilter должен возвращать это значение : record[indexOftheFiltringColumn]
Ответ №2:
Для получения желаемого изменения поведения .indexOf
на .includes
:
onFilter: (value, record) => record.name.includes(value),
// and
onFilter: (value, record) => record.address.includes(value),
Исправлена ссылка на CodeSanbox.