В моей работе мы решили использовать AG-Grid
в варианте реакции: https://www.ag-grid.com/best-react-data-grid/index.php
В настоящее время наша архитектура для React
- Redux
. Исходя из моего небольшого знания AG-Grid
, я могу сказать, что он не очень хорошо подходит для этой архитектуры. AG-Grid
сохраняет общее состояние внутри компонента. Громоздко или даже неразумно пытаться принудительно и полностью подключить его к redux.
Я могу смириться с этим, но, по крайней мере, мне нужно следить за изменениями модели строк, то есть за выборкой новых строк, сортировкой, фильтрацией (мне не нужно следить за изменениями ячеек). У меня есть 2 идеи, как за этим следить и подключать к redux.
Вариант 1. Используйте gridOptions.onModelUpdated ()
С gridOptions.onModelUpdated()
я знаю, когда выполнялась фильтрация или сортировка, но я не могу получить доступ ко всем отображаемым строкам (документы):
Состояние 1: данные строки
API: API для получения этих данных отсутствует. Однако он был предоставлен приложением, поэтому он у вас уже должен быть.
Таким образом, я не могу отправить действие redux
, поскольку у меня нет данных для его обновления.
Вариант 2 - datasource.getRows ()
Я мог отправлять действия с новыми строками. Однако я не нашел ни одного события onReset/onRowsDeleted/...
, поэтому не знаю, когда очистить state.rows
redux. Обновление. Я могу узнать, что предыдущие строки были очищены, если аргумент params
из datasource.getRows(params)
равен params.startRow === 0
.
Вопрос
Возможно, я найду способ использовать один из двух вариантов, но мой вопрос:
Это хорошие идеи о том, как соединить AG-Grid
с Redux
?