問題タブ [flutter-bloc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter - BlocProvider.of() が Bloc を含まないコンテキストで呼び出されました。
まず、BLoC がどのように動作するか、その背後にある考え方を知っており、コンストラクターとの違いを知っていBlocProvider()
ますBlocProvider.value()
。
簡単にするために、私のアプリケーションには次のようなウィジェット ツリーを含む 3 つのページがあります。
App()
=> LoginPage()
=> HomePage()
=>UserTokensPage()
ユーザーなどにログインする必要があるため、LoginPage()
アクセスできるようにします。そのために、次のようにウィジェットでビルダーをラップします。UserBloc
LoginPage()
App()
それは明らかにうまく機能します。次に、ユーザーが正常にログインすると、ユーザーは に移動しHomePage
ます。ここで、自分の 2 つの異なるブロックにアクセスする必要があるため、HomePage
既存のものをさらにMultiBlocProvider
渡しUserBloc
、 という名前の新しいブロックを作成しますDataBloc
。私はこのようにします:
これも機能します。HomePage
ユーザーからに移動すると、問題が発生しますUserTokensPage
。コンストラクターで渡したいUserTokensPage
既存のものが必要です。私はこのようにします:UserBloc
BlocProvider.value()
ボタンを押して移動するMyTokensPage
と、次のメッセージでエラーが発生します。
私は何を間違っていますか?PopupMenuButton
どういうわけかブロックを失うウィジェットを抽出したからですか?何が間違っているのかわかりません。
flutter - BlocProvider.of() が Bloc タイプの Bloc を含まないコンテキストで呼び出されました
エラー: I/flutter ( 5919): ══╡ 例外がウィジェット ライブラリーによってキャッチされました═══════════════════════════ I/flutter (5919): 次のアサーションがビルド ビルダーにスローされました: I/flutter (5919): BlocProvider Bloc タイプの Bloc を含まないコンテキストで .of() が呼び出されました。I/flutter (5919): I/flutter (5919): BlocProvider.of>() に渡されたコンテキストから始まる祖先が見つかりませんでした。私/フラッター ( 5919):
これは、使用したコンテキストが BlocProvider の上のウィジェットに由来する場合に発生する可能性があります。I/flutter ( 5919): 使用されたコンテキストは: BlocBuilder, dynamic>(dirty, state: I/flutter ( 5919): _BlocBuilderBaseState, dynamic>#55a7d(lifecycle state: created)) I/flutter ( 5919): 関連するエラーの原因となったウィジェット: I/flutter (5919): MaterialApp /lib/main.dart:35:12
これが私のメインです
MaterialApp ウィジェット