mysql - 即使在添加 X-Total-Count 后,分页和排序也无法按预期在 react-admin 中工作

标签 mysql rest express react-admin json-server

这是我第一次使用 react-admin。我已经完成了文档中的教程设置。当我为我的 API 实现相同的设置时,问题就开始了。

我有一个使用 expressJS 设置的 Web API 路由,用于从 mySQL 数据库中获取数据。较早的错误是为了分页在 React-Admin 上工作而在 HTTP 响应 header 中包含 X-Total-Count。

我在 HTTP 响应 header 中添加了 X-Total-Count,并且数据已成功从 Web API 获取到 react-admin 界面。但是,分页仍然没有按预期工作。

下面的片段可能会有帮助。

在 App.js 中

  <Admin dataProvider={jsonServerProvider("/api/fetch/")}>
    <Resource
      name="temp"
      list={UserList}
      edit={UserEdit}
      create={CreateUser}
    />
  </Admin>

fetch.js 中的 Web Express API

route.get('/temp', (req, res) => {
  sql.query(`SELECT * FROM temp`, (err, result) => {
    if (err) {
        return res.status(400).send(`Invalid Request: ${err}`)
    }

    res.setHeader('X-Total-Count', result.length)

    return res.status(200).send(result)
  })
})

在 server.js 中

app.use(cors());   // using cors

react-admin 在一个表中显示从 Web API 获取的所有数据,没有分页和排序功能,这不是我想要的。如您所见,分页设置为每个表显示 10 条记录,并在分页时拆分剩余记录,而在我的情况下,所有数据都显示在单个表上,分页菜单无效。

同样,基于列的表格排序也不是很好

click to see output screenshot

最佳答案

当你有分页时,或者默认在<List> React-Admin 通过向后端发送查询字符串以将响应限制为一定数量来批量获取记录。然后将响应呈现在前端。据我所知,您的后端独立于请求查询字符串返回表中的所有记录。如果您说将响应限制为 10 条记录,或者您不这样做,它总是会返回表中的所有记录,因此它会在前端显示所有记录。

您还可以看到您没有排序,因为在问题图像中您大学名称按升序排序,但记录显示按 ID 排序。

关于mysql - 即使在添加 X-Total-Count 后,分页和排序也无法按预期在 react-admin 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56044939/

相关文章:

javascript - Mysql-nodejs 嵌套查询

mysql - 使用现有 IPv4 列数据更新 MySQL 新 IPv6 列

php - 如何使用 MySQL Joins 选择允许用户阅读的论坛版 block ?

mysql - 如何使用左连接来统计mysql中除第一个结果之外的结果数?

java - Keycloak - antMatcher 与请求的路径 Java 不匹配

java - 使移动应用程序中的内容动态化

node.js - 当 req.session 更改时,socket.io session 不会更新

mysql - 我怎样才能使我的社交网络应用程序更有效地存储和检索数据?

rest - 版本控制 RESTful 服务?

php - 如何在同一端口上使用 node.js 和 php