У меня есть таблица со списком элементов, которые вы можете выбрать:
Он отлично работает, выбирая элементы на любой из страниц.Недавно я ввел вышеупомянутую опцию поиска, которая фильтрует результаты.Однако, если я отфильтрую, затем щелкните, чтобы выбрать элемент, он удалит ранее установленные параметры.Я пытался пройти через массив выбора, но не могу связать точки.
Код фильтра:
filterIcon: <span/>,
filterDropdownVisible: true,
filterDropdown: (
<div className={styles.listFilterDropdownModal}>
<Input
placeholder="Search list..."
value={listModalFilterString}
onChange={(ev) => dispatch({
type: "jobs/setListModalFilterString",
listModalFilterString: ev.target.value,
})}
/>
</div>
),
Который в основном передается в источник данных:
dataSource={(list || [])
.filter(strategy => {
// console.log(list);
// return true;
return list.name.toLowerCase().indexOf(listModalFilterString.toLowerCase()) !== -1
})
.map(list => ({
key: `list_${list.id}`,
...list,
}))}
Тогда код выбора строки - который, я думаю, вызывает проблему:
rowSelection={{
selectedRowKeys: (listIds || defaultListIds).map(k => `list_${k}`),
onSelect: (r, s, selectedRows) => dispatch({
type: "job/setListIds",
listIds: selectedRows.map(row => row.id),
}),
}}
Вызванная выше функция просто делает это:
setListIds: (state, {listIds}) => ({...state, listIds})