AG-Grid с Redux

В моей работе мы решили использовать 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?


person Amio.io    schedule 22.07.2016    source источник
comment
Вы когда-нибудь придумали свое решение? Я смотрю на аналогичную настройку, и я думаю, что это немного сложно реализовать крючки источника данных ... Полностью выполнимо, особенно для одноразовых запросов, но не совсем жизнеспособно для изменений данных таблицы в другом месте в состояние, необходимо перезагрузить / обновить сетку ag   -  person zeroasterisk    schedule 14.10.2016
comment
Чувак, меня попросили изложить суть. У меня будет один в понедельник.   -  person Amio.io    schedule 14.10.2016
comment
@zatziky Спасибо, что поделились своим кодом, это очень полезно. У вас была возможность провести рефакторинг вашего кода?   -  person Anas    schedule 20.04.2017
comment
@Anas Нет, даже выросла, большая миска для спагетти. ;) Собственно, мы немного поработали, и это немного помогло. К сожалению, у меня больше нет кодовой базы.   -  person Amio.io    schedule 20.04.2017


Ответы (1)


Ag-grid (v 10.1.0) теперь поддерживает Redux:

https://ag-grid.com/example-react-redux/?framework=all#gsc.tab=0

person Anas    schedule 15.06.2017
comment
в этом примере не используется модель бесконечных строк, поддерживается ли это также с помощью Redux? - person Elhay Avichzer; 12.02.2018