こんにちは!本記事では、Provider()を使用したときに出てくるエラーについて解決方法をご紹介します。
エラー文は以下の通り。
The following ProviderNotFoundException was thrown building MyApp(dirty):
Error: Could not find the correct Provider<> above this MyApp Widget
This happens because you used a ‘BuildContext’ that does not include the provider of your choice.
There are a few common scenarios:….
![](https://www.mechengjp.com/wp-content/uploads/2022/02/82f1367c9096f76778301804b5f7356b.png)
そして画面が左のように真っ赤になると思います。画面に書かれているのはエラー文です。
つまるところ、Provider()を使用してるけど使おうとしてるClassの上位にProviderの宣言書かれてないよ。って言ってます。
目次
解決方法
ChangeNotifierProvider<>()
を、変数を使いたいClassの上位に挿入する。
例えば、下のようにMyApp内でChangeNotifierProvider<>()
を宣言し、その中にPage1、Page1の中にPage2, Page3がある場合を考えます。
この場合は、MyApp()でKのクラスの変数は使うことができません。ただ、Page1()、Page2()、Page3()は使うことができます。
![](https://www.mechengjp.com/wp-content/uploads/2022/02/82aeca583cef6b37f288e37513f03ab5.jpeg)
従って、もしProviderがうまく使えない場合は、上位のクラスを作るか、上位のクラスにProviderを宣言し直すようにしましょう。
関連記事
Provider()に関する記事はこちら
あわせて読みたい
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
![](https://www.mechengjp.com/wp-content/uploads/2022/02/3f1694898e99972f88b188a066069003-300x169.jpg)
【Flutter】Provider()使い方、サンプルコード
こんにちは!本記事では、Provider()というウィジェットについて、サンプルコードを用いながら実践的に説明しています。 【Provider()とは】 Provider()はパッケージの...
コメント