はじめに 個人的なお話ですが、AngularJS から Angular に移行して約半年が経過しました。 ngrxは移行当初から導入しており、いくつかハマったポイントがあります。 この記事ではngrxで私が「最初からやっとけば良かった...」と思ったことについて書いていきます。 Do: するべきこと ngrx-store-freeze を使う https://github.com/brandonroberts/ngrx-store-freeze Redux では状態オブジェクトを直接変更してはいけません。 ngrx-store-freeze を使うと state と payload を直接変更した際に例外が発生します。 再帰的に Object.freeze() してくれるので状態オブジェクトがネストしてても大丈夫です。 有効にする場合は、MetaReducer として登録します。
![ngrxでハマったポイント - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/7e21cdf6859b322cc1eace49b05bfffc48e7398e/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-1150d8b18a7c15795b701a55ae908f94.png%3Fixlib%3Drb-1.2.2%26w%3D1200%26mark%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D380%2526txt%253Dngrx%2525E3%252581%2525A7%2525E3%252583%25258F%2525E3%252583%25259E%2525E3%252581%2525A3%2525E3%252581%25259F%2525E3%252583%25259D%2525E3%252582%2525A4%2525E3%252583%2525B3%2525E3%252583%252588%2526txt-color%253D%252523333%2526txt-font%253DHiragino%252520Sans%252520W6%2526txt-size%253D54%2526txt-clip%253Dellipsis%2526txt-align%253Dcenter%25252Cmiddle%2526s%253D7a19259183343a59b75f701d1a363733%26mark-align%3Dcenter%252Cmiddle%26blend%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D500%2526txt%253D%252540guenske%2526txt-color%253D%252523333%2526txt-font%253DHiragino%252520Sans%252520W6%2526txt-size%253D45%2526txt-align%253Dright%25252Cbottom%2526s%253D107ab8fbc7dcdc4af34c0bb0bee4689c%26blend-align%3Dcenter%252Cmiddle%26blend-mode%3Dnormal%26s%3Deb7a01a226dd9c0ecd861827536de59e)