てぃぐれのプログラマwiki

ワクワクに従う

コンポーネント ライフサイクルのメモ【Blazor】

経緯

Blazorといかコンポーネントのライフサイクルで詰まり、はまる。

【Blazor】Razorコンポーネントのライフサイクルを解説する|Blazorマスターへの道

ASP.NET Core Razor component lifecycle | Microsoft Learn

 

端的にはまった問題として、

①親で取得し格納した値をCascading Value等で使いまわしたい場合、子画面でリロードをかけると、子画面のOnInitializeが先に走ってしまうため、値の取得ができない。

 

一旦の解決

ちなみに状況としては、

 ローカルストレージに値を持っていて、そこに格納するのは親の仕事である。

 ローカルストレージに値がない場合で起動した場合に、Initializeで処理をさせていると、今開いている、子供の方が処理が先に走ってしまうので、エラーが起きてしまう。

子画面のInitializeで処理していたのをAfterRenderで処理をさせる。firstでの処理ではない場合でほしい値が入ってきたら処理させ、2回目は処理させないという、ごりごりのロジックでクリアをする。