在任何页面上选择项目都可以正常工作。我最近介绍了上述搜索选项,用于过滤结果。但是,如果我过滤然后单击以选择一个项目,它将删除先前设置的选择。我试图通过选择数组,但似乎无法链接所有点。
过滤器代码:
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的:
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})