InheritedWidget触ってみた

shinnaga
·

仕組みとしては、ProviderやRiverpodと同じく最親WidgetにInheritedWidgetを配置し、その配下であればInheritedWidgetが状態管理しているというもの。ProviderやRiverpod把握していればすんなりと理解!(というか、InheritedWidgetを参考にProviderやRiverpodが出来てるけど、、)

InheritedWidget使う上での要点

  • InheritedWidgetはそれを継承し、updateShouldNotify()を定義すれば実態はOK

  • State管理の為、StatefulWidgetを組み合わせる。Stateのbuild()内でInheritedWidgetを返却する

  • ofコンストラクタを定義することで、Presenter層からのデータ参照/更新の呼び出しが簡潔に書ける

  • StatefulWidgetのコンストラクタに引数を指定することで、mock作成も可能

  • dependOnInheritedWidgetOfExactType → rebuildする

  • getElementForInheritedWidgetOfExactType → rebuildしない

使ってみた感想

ProviderやRiverpodの使いやすさに感謝。今回はstateを1種類のみで利用していたが、これが実プロジェクトと考えるととても採用は出来ない、、

mock作成の情報がネット上探しても見当たらずにちょっと躓いた