問題タブ [cubit]

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.

0 投票する
1 に答える
764 参照

flutter - Flutter cubit ブロックプロバイダーが正しいプロバイダーを見つけられませんでした

ユーザーがGoogleアカウントでサインインできるフラッターアプリを構築しています。これをcubitで管理したいです。Blocprovider を使用して、ウィジェット ツリーにキュビットを提供します。ブロックプロバイダーは、runApp 関数の futurebuilder 内にあります。ここに私のコードがあります:

main.dart:

SignInPage ウィジェット:

Google ボタン ウィジェット:

実行すると、次のエラーがスローされます。 エラー画像

推奨されることを実行して、BlocProvider を Provider と交換しようとしたため、コードは次のようになります。

しかし、その後、引数の型 'SignInPage Function(BuildContext)' をパラメーターの型 'Widget Function(BuildContext, Widget)' に割り当てることはできませんというエラーが表示されます。

0 投票する
1 に答える
1129 参照

flutter - フラッターがキュービット状態を更新していません

BloC cubit を練習していますが、状態を更新していません。これが私のメインファイルです。インスタンスを作成するために BlocProvider を使用し、状態をレンダリングするために BlocBuilder を使用しましたが、インクリメントとデクリメントをクリックするたびにテキストウィジェットを再レンダリングしません。

これが私のカウンターcubitファイルです

import 'package:bloc/bloc.dart'; import 'package:meta/meta.dart';

ここに私のカウンター状態ファイルがあります

0 投票する
1 に答える
242 参照

flutter - ブロック(キュービット)の助けを借りてフラッターで非同期カウンターアプリを作成していましたが、カウンターが0に戻るたびに読み込み状態を発しています

BLoC (cubit) を使用してフラッターで非同期カウンター アプリを作成しています。ローディング状態を発行すると、カウンターがインクリメントせずに 0 に戻ります。この問題を解決するにはどうすればよいですか?

コード:

0 投票する
1 に答える
965 参照

flutter - Flutter - Cubit - ロードされた状態 - ページへのリダイレクトの管理 - ページの 2 つのビルドが作成されます

英語で申し訳ありませんが、私はフランス人です。

Flutter (dart) で開発していますが、フォームの送信 (「リアクティブ フォーム」パッケージを使用しますが、クラシック フォームも使用) とステップの後にページにリダイレクトするときに、Cubit (Bloc) を使用してコードで奇妙な動作が発生します。 Cubit がロードされた状態: ページへの 2 つの呼び出し (2 つのビルド) が見られます。これは一種の「フラッピング」効果をもたらします。これは、最終ユーザーがインターフェイスの充電を 2 回見ることを意味します。

Flutter での初めてのアプリケーションです。

ログインフォームを含むアプリケーションを作成しました。フォームが送信されると、別のフォームを印刷します。

アプリケーションの開始時に「auto_route」パッケージを使用していましたが、ログイン プロセス後にテキスト フィールド内をクリックするたびにページが更新されました。そのため、テキスト フィールド内に何も書き込むことができませんでした。

問題は「Reactive forms」パッケージにあると考えていたので、このパッケージの github リポジトリに問題を開きました: issue open

しかし、どこに問題があるのか​​分からなかったので、アプリケーションのより基本的な開発に戻り、「リアクティブ フォーム」パッケージの管理者に問題を説明するために、ページ ルーティングを管理するためのより基本的な方法に戻りました。 、本当に私を助けようとした本当にいい人。

しかし、メンテナーでさえ、なぜ私がこの問題を抱えているのか理解できません。

これで、より単純なコードを 1 ページにまとめました。

現時点では、テキスト フィールド内をクリックしても問題はありませんが、インターフェイスが 2 回ビルドされ、Cubit がロードされた状態になっていることがわかります。これが、最初の問題が発生した理由を説明している可能性があります。

そのため、元のコードをデバッグする前に、インターフェイスが 2 回ビルドされる理由を理解しようとしています。

私の主な問題は、キュービットのロード状態が同期ウィジェットの戻りを待っていることだと思いますが、別のページにリダイレクトしようとすると、非同期アクションが必要になります (「auto_route」パッケージまたはより単純に「Navigator.push()」アクションを使用する) )。

しかし、クラシック ウィジェットを待機する Cubit ロード状態内で Future を呼び出す方法がわかりません。

私はこれを試しました:

したがって、返されたウィジェット「return Container()」は、Navigator.push() がもう一度インターフェイスを構築した後に、一度インターフェイスを構築すると思います。「Navigator.push」を直接返そうとしましたが、エラーが発生しました(ウィジェットではないため)。

この問題の助けをいただければ幸いです。ありがとう。

これが私の完全なコードです(より単純なバージョン)。

私の pubspec.yaml ファイル:

私のコード:

私の「flutter doctor -v」の結果:

0 投票する
1 に答える
1258 参照

flutter - Flutter Cubit:格納された変数を取得する良い方法は?

私は Flutter と Cubit を初めて使用しています。これが保存された変数を取得する良い方法であるかどうかを知りたいのですが、現在ログに記録されているユーザーです。

ログイン後、ユーザーは自分のプロフィール ページに移動して、表示/更新できます。

ログインフォーム:

AuthCubit: ログイン方法:

自己紹介ページ:

任意の提案/アドバイスをいただければ幸いです。ありがとう!

0 投票する
2 に答える
192 参照

flutter - providernotfoundexception(t, context.widget.runtimetype) をスローします。

私はフラッターを学んでおり、cubit を使用して todo リスト アプリケーションに取り組むことにしました。ホーム画面でブロックプロバイダーを使用してキュービットを作成し、別の画面で別のキュービットを作成せずに同じキュービットを直接消費しようとしています。

ホームスクリーン cubit セクションと cubit を使用したデータベースの作成:

ここでキュービットを作成し、データベースを作成しました。

2 番目のページに移動するボタンがあります。

2 番目のページでは、ブロック プロバイダーを使用せずに cubit を消費しようとしています。ブロックプロバイダーを使用すると、データベース内のデータにアクセスできなくなり、データベースの作成を再度呼び出す必要があります。

実行しようとすると、このエラーメッセージが表示されます

0 投票する
1 に答える
148 参照

flutter - Flutter - キュービット - キュービット内のブール値を変更する

bool 値を cubit から変更したいのですが、その方法がわかりません。

たとえば、達成したいのは、if (cubit に格納されたブール値が true) "show widget A" : "show widget B" です。

私のコード:

意見:

おそらく些細な質問で申し訳ありませんが、Cubit/Bloc は初めてです。

0 投票する
2 に答える
101 参照

flutter - Flutter で別のルート/ページからカウンターをインクリメントする方法

Bloc/Cubit (flutter_bloc) & Auto_Router パッケージを使用しています

/counter ルートにカウンターを配置し、/user_profile ルートに FloatingActionButtons を配置して、カウンターをインクリメントします。

別のページ/ルートからカウンターをインクリメントするにはどうすればよいですか? ページを前後に切り替えて、どちらのページからでも増減できるはずですが、次のエラー メッセージが表示されます。

例外が発生しました。ProviderNotFoundException (エラー: この UserProfilePage ウィジェットの上に正しいプロバイダーが見つかりませんでした

これBuildContextは、選択したプロバイダーを含まない を使用したために発生します。一般的なシナリオがいくつかあります。

  • に新しいプロバイダーを追加しmain.dart、ホット リロードを実行しました。修正するには、ホット リスタートを実行します。

  • 読み取ろうとしているプロバイダーは別のルートにあります。

    プロバイダーは「スコープ」です。そのため、ルート内にプロバイダーを挿入すると、他のルートはそのプロバイダーにアクセスできなくなります。

  • BuildContext読み取ろうとしているプロバイダーの祖先である を使用しました。

    UserProfilePage が MultiProvider/Provider の下にあることを確認してください。これは通常、プロバイダーを作成してすぐに読み取ろうとしたときに発生します。

    たとえば、次の代わりに:

    builder次のように使用することを検討してください:

これらの解決策のいずれもうまくいかない場合は、StackOverflow で助けを求めることを検討してください: https://stackoverflow.com/questions/tagged/flutter )

これが私のコードです:

home_page.dart

counter_cubit.dart

counter_page.dart

user_profile_page.dart

どんな助けでも大歓迎です。ありがとう!

0 投票する
2 に答える
369 参照

flutter - ブロックの更新後にブロック オブザーバーを使用できない

ブロック 8.0.1 の最後の更新に問題があります。ブロック オブザーバーを使用できず、BlocOverrides を使用しましたが、まだ機能していません。これが私のコードです。

私のメインクラスコード

BlocObserver

0 投票する
0 に答える
31 参照

flutter - Flutter cubit の状態管理の問題

すべてが正常に機能しています。ユーザーは作成されていますが、状態は変化していません。

registerlazysingleton (get_it) を使用しています。

状態変化で問題に直面しています。考えられる理由は何ですか。その理由は、キュービットを初期化した方法でしょうか?

create.user.dart

Feature.service.locator.dart

add.user.cubit.dart

** create.user.state.dart **