Скорее всего, вы используете immer
или библиотеку, которая использует immer
под капотом (например, @reduxjs/toolkit
). immer
использует Object.freeze
, чтобы сделать объекты, которые он производит, неизменяемыми.
material-table
изменяет свой собственный реквизит (который является очень уродливым антипаттерном). Когда библиотеки нарушают правила, они не будут работать с библиотеками, которые пытаются их применить.
Нет способа разморозить замороженный объект, но у вас есть несколько вариантов:
Найдите способ отключить зависание в экземпляре immer (ознакомьтесь с документацией по API того, что, по вашему мнению, могло заморозить ваше состояние).
Переопределить Object.freeze
заставить его ничего не делать (очень хакерский, его следует избегать - и все же это может быть вашим лучшим выстрелом здесь):
window.Object.freeze = function(obj) { return obj }
Клонируйте / глубоко копируйте свое состояние, прежде чем передать его
MaterialTable
. Это также далеко от идеала, особенно если у вас много данных.