reactjs - Material Table React 上的选择和远程数据分页

标签 reactjs material-table

我需要帮助,我需要使用 Material 表来 react 我的数据表。我想同时使用选择和分页,但问题是如果我选择某一行并更改页面并返回到上一页。它不会选择该行。这是我创建的示例片段。是否可以覆盖选择 Prop ?

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

最佳答案

由于您已经知道所选的行,因此您只需修改获取的数据,如下所示:

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

这会将 tableData.checked 键添加到获取的数据中,并将其显示为选中状态。

这是一个codesandbox .

关于reactjs - Material Table React 上的选择和远程数据分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58389384/

相关文章:

javascript - React - 选择具有与 HTML5 选择元素类似 API 的组件

javascript - react 错误: Cannot read property 'users' of undefined

javascript - react 选择器 : passing onChange event back through two components

javascript - 使用 Material 表库时如何更改删除过滤器图标?

angular - 在 mat-table 的表标记中使用 multiTemplateDataRows 和 formArrayName 时出错

reactjs - Material-Table 如何制作可选择和可编辑的表格?

javascript - 插件 "react"在 "package.json ..."和 "BaseConfig ..."之间发生冲突

reactjs - 清除多选( react 选择)

reactjs - react Material 表

reactjs - Material 表 react 。如何使表格标题和标题具有粘性