React AntD - выберите сброс после фильтрации - PullRequest
0 голосов
/ 16 октября 2018

У меня есть таблица со списком элементов, которые вы можете выбрать: 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={(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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...