web-dev-qa-db-ja.com

プロパティXを追加できません。ngrx9の更新後にオブジェクトを拡張できません

私のような問題があります

プロパティXを追加できません。オブジェクトは拡張できません

angular project to angular 9 with Ngrx updateを実行した後。Ngrxversionを8にロールバックすると、正常に動作します。しかし、それも更新する必要があります。 angular 9の更新でv9に変更します。これは、追加の属性を使用してマテリアルテーブルにdatasource.dataとしてこれを追加したときに発生しました。追加の属性変更がその理由だと思います。しかし、スライスを使用して以下のように取得および試行したものからの新しい配列。

 myDataArray.slice(0)

また、機能しません。

Ngrxバージョン8から9への変更リストと移行ガイドラインをここで参照します https://ngrx.io/guide/migration/v9

私が発見したように、angular 9.で不変性に関連する特別な変更があります。彼らはそこでアクション、状態、および直列化可能性に関連する不変性ロジックを定義しました。そして、それらを解決するために彼らが提案した方法を試しましたNgrx V9の更新に関する問題はこちら https://ngrx.io/guide/store/configuration/runtime-checks

しかし、それらは私のために働いていません。誰かがこの問題の解決策を持っている場合、それは本当に役に立ちます。前もって感謝します..

エラースタックトレース..(私はmatDataFlatnerも使用しましたが、ここでもオブジェクトの変更が発生します)

app-error-handler.ts:30 TypeError:プロパティレベルを追加できません。オブジェクトはMatTreeFlattener.defaultFlattenerTransform [as transformFunction](tree-table-flattener-builder.ts:57)at MatTreeFlattener._flattenNode(flat-data- source.ts:58)at at flat-data-source.ts:81 at Array.forEach()at MatTreeFlattener._flattenChildren(flat-data-source.ts:78)at MatTreeFlattener._flattenNode(flat-data-source.ts: 65)Flat-data-source.ts:92 at Array.forEach()at MatTreeFlattener.flattenNodes(flat-data-source.ts:92)at MatTreeFlatDataSource.set(flat-data-source.ts:138)

2
PushpikaWan

LodashライブラリのcloneDeep関数を使用してオブジェクトをディープクローンし、エラーを回避できます。

_import {cloneDeep} from 'lodash';_

const clonedData = cloneDeep(myDataArray);

次に、clonedDataオブジェクトに必要なプロパティまたはすべてを追加できます。

よろしく!

1
Amn