React AntD-过滤后选择重置

时间:2018-10-16 08:23:09

标签: reactjs antd

我有一张桌子,上面有可以选择的项目清单: enter image description here

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

过滤器代码:

        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})

0 个答案:

没有答案