Разбиение на страницы и сортировка не работают в реакции-администратора, как ожидалось, даже после добавления X-Total-Count - PullRequest
0 голосов
/ 08 мая 2019

Я впервые работаю с реактивом-админом. Я завершил настройку учебника из документации. Проблема начинается, когда я реализую ту же настройку для моего API.

У меня установлен маршрут веб-API с помощью expressJS для извлечения данных из базы данных mySQL. Предыдущая ошибка заключалась в том, чтобы включить X-Total-Count в заголовок ответа HTTP для разбивки на страницы для работы в React-Admin.

Я добавил X-Total-Count в заголовок ответа HTTP, и данные успешно извлекаются из веб-API в интерфейс реагировать-администратор. Тем не менее, нумерация страниц все еще не работает, как ожидалось.

Следующие фрагменты могут быть полезны.

In App.js

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

Веб-экспресс API в fetch.js

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

Реакт-администратор показывает все данные, извлеченные из веб-API, в одной таблице без функций разбивки на страницы и сортировки, что мне не нужно. Как вы можете видеть, разбивка на страницы настроена так, чтобы отображать 10 записей на таблицу и разбивать оставшиеся записи на нумерацию страниц, в то время как в моем случае все данные отображаются на одной таблице, а меню разбивки на страницы не работает.

Аналогично сортировка таблицы по столбцам также не работает

click to see output screenshot

1 Ответ

0 голосов
/ 13 мая 2019

Если у вас есть нумерация страниц или по умолчанию в <List> React-Admin выбирает записи в пакетном режиме, отправляя строку запроса в бэкэнд, чтобы ограничить ответ определенным числом. Ответ тогда представлен на внешнем интерфейсе. Из того, что я вижу, ваш бэкэнд возвращает все записи в таблице независимо от строки запроса. Либо, если вы скажете ограничить ответ до 10 записей, или если вы этого не сделаете, он всегда будет возвращать все записи в таблице, поэтому он будет отображать все записи во внешнем интерфейсе.

Вы также можете видеть, что у вас нет сортировки, поскольку в изображении вопроса у вас есть Название университета , отсортированные по возрастанию, но записи отображаются отсортированными по идентификатору.

...