[Flutter]providerのバージョン5.0.0以降はcontext.readがbuildメソッド内でも使えるようになりました

このページには広告が含まれる場合があります。

 

これは、ややこしさが減るという意味で非常にいい話なのですが、Flutterにおける状態管理のデファクトスタンダードである「provider」パッケージですが、

これのバージョン4.1.0から従来の

Provider.of<T>(context, listen: false)

の拡張関数版である

context.read<T>()

が登場しましたが、これはbuildメソッド内では使えないという制約がありました。

これは安全上の方策とは言え、使う側からするとややこしさが残るものとなっていましたが、バージョン5.0以降はbuildメソッド内でも使えるようになり、そのややこしさが解消されました。

(providerの作者:Remiさんのコメント)

context.watch/context.readのアサーション(例外を投げること)は、多くの人にとって不満の種であり、ほとんど役に立たないようだ。

アサートの代わりに、カスタムリンターを実装することができる。つまり、readをbuild内で使用したり、アサーションで防がれている他のものは「動作する」が、リンターを使用している場合は警告が表示されるということ。

これは、人々がこの動作をオプトイン/オプトアウトできるので、おそらくより良い妥協点になるだろう。

 

(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)

こんな記事も読まれています

人気No.1

前向きな気持ちになれる 占星術・タロットリーディング

あすコロ式・相談サロン 【ナビるやん】

人に言えない悩みから使命・運勢診断まで、あなたに寄り添いながら“ナビゲート”する、あすコロ人気No.1のオンライン相談サロン。占星術・心理学・タロットの叡智を活かし、普段認識していない「潜在意識」にアクセスしてあなたの気づいていない可能性を拓かせ、明日から前向きに歩めるようになる60分のリーディングセッション。

今すぐ詳細を見る(メルマガ登録で初回半額) ▶

TOP