NISHIO Hirokazu[Translate]
Cannot add property 0, object is not extensible
js
foo = [] Object.freeze(foo) foo.push(1) // Uncaught TypeError: Cannot add property 0, object is not extensible
フリーズされているArrayに対してpushしようとすると起こる

具体的な発生シチュエーション
ではなぜフリーズされたのか?

選択された要素をReactNに入れて、それを取り出したときにフリーズされている。うっかり破壊的更新をして厄介なバグになることを防ぐために親切な設計。

選択されたものをグループにするとき、このようなことを書いていた、これが誤り
ts
const group = new GroupItem(); group.items = g.selected_items;
これはフリーズされたオブジェクト自体への参照を新しいグループに持たせてしまい、その後そのグループに追加をしようとした時点で上記のエラーになる

ts
group.items = [...g.selected_items];
こうすべきだった

"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]