Как запретить редактированию встроенных ячеек ag-grid автоматическое изменение данных строки - PullRequest
0 голосов
/ 23 апреля 2019

AgGrid по умолчанию изменяет данные базовой строки, когда выполняется встроенное редактирование.

Это нарушает "правила неизменности", так как моя модель хранится в избыточном количестве. Поскольку я использую immer, я также получаю

Невозможно назначить только для чтения свойство 'версия' объекта '#'

Как я могу запретить AgGrid автоматически отправлять значения в модель. Я хочу вручную отправить в магазин действие, которое внесет изменения.

Ответы [ 2 ]

1 голос
/ 07 июня 2019

Решение состоит в том, чтобы добавить свойство "valueSetter" в определение столбца сетки.Значением этого свойства должна быть функция, которая получит новое значение, а затем использует это новое значение для обновления хранилища.

Исходный ответ: AG-Grid: невозможно обновить поле вСетка только для чтения

0 голосов
/ 23 апреля 2019

Я не работаю с ag-grid, но вы можете найти некоторую полезную информацию в документах (пользовательский рендерер / редактор ячеек).

1st: Редактор ячеек

// Gets called once when editing is finished (eg if enter is pressed).
// If you return true, then the result of the edit will be ignored.
isCancelAfterEnd?(): boolean;

Возможно, с помощью этой опоры вы можете отправить действие обновления и вернуть true, чтобы отменить / предотвратить локальные изменения.OTOH - возвращение 'false' может работать как 'оптимистичное обновление' - кажется невозможным с неизменяемостью и стандартной обработкой событий.

2nd: Пример интеграции Redux

...