Выбор и удаленное разбиение данных на таблицы материалов - PullRequest
0 голосов
/ 15 октября 2019

Мне нужна помощь, я использую таблицу материалов для реакции на мою таблицу данных. Я хочу использовать выделение и разбивку на страницы одновременно, но проблема в том, что если я выберу определенную строку, изменим страницу и вернусь на предыдущую страницу. он не выбирает эту строку. вот образец фрагмента, который я создал. Можно ли переопределить реквизиты выбора?

const Table = () => {
const [selectedRows, setSelectedRows] = useState([]);

function handleSelectChange(rows) {
setSelectedRows(rows)
}
return (
<MaterialTable
      title="Remote Data Preview"
      columns={[
        {
          title: 'Avatar',
          field: 'avatar',
          render: rowData => (
            <img
              style={{ height: 36, borderRadius: '50%' }}
              src={rowData.avatar}
            />
          ),
        },
        { title: 'Id', field: 'id' },
        { title: 'First Name', field: 'first_name' },
        { title: 'Last Name', field: 'last_name' },
      ]}
      options={{
        selection:true,
      }}
      onSelectionChange={(rows) => handleSelectChange(rows)}
      data={query =>
        new Promise((resolve, reject) => {
          let url = 'https://reqres.in/api/users?'
          url += 'per_page=' + query.pageSize
          url += '&page=' + (query.page + 1)
          fetch(url)
            .then(response => response.json())
            .then(result => {
              resolve({
                data: result.data,
                page: result.page - 1,
                totalCount: result.total,
              })
            })
        })
      }
    />
)
}

Я уже создал проблему, поставит эту ссылку. https://github.com/mbrn/material-table/issues/1189

1 Ответ

1 голос
/ 15 октября 2019

Поскольку вы уже знаете выбранные строки, вам просто нужно изменить извлеченные данные следующим образом:

data: result.data.map(row => selectedRows.find(selected => selected.id === row.id) ? { ...row, tableData: { checked: true } } : row)

Это добавит ключ tableData.checked к извлеченным данным и отобразит его в выбранном виде. .

Вот код и .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...