問題タブ [flutter-change-notifier]

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 投票する
2 に答える
188 参照

flutter - Flutter でログインしたユーザーを記憶するために ChangeNotifierProvider を適切に実装する方法がわからない

ユーザー登録が機能するアプリがあり、ユーザープロバイダーを使用すると、登録中にユーザーを設定し、次の画面で問題なく取得できます。私が問題を抱えているのは、アプリの起動時に保存されている現在ログインしているユーザーを設定し、以下のアサーションをスローせずに登録プロセスを実行するのではなく、ダッシュボードに進む機能を適切に実装しようとしていることです。

問題なくユーザーを取得できSharedPreferencesますが、ダッシュボード画面が読み込まれたときにアクセスできるように、プロバイダーでこのユーザーを適切に設定する方法がわかりません。以下は私のmain()関数と MyApp クラスです。

FutureBuilder で、ユーザーを設定する呼び出しで then を連鎖しようとしましたがgetUserData()、もちろんこれは次のアサーションを返します:

私が読んだことから、これはnotifyListeners()、ユーザープロバイダーに を呼び出す呼び出しがあるためmarkNeedsBuild()です。そうは言っても、私は物事を動かそうとオンラインでいくつかの提案を試みましたが、これを実装するためのベストプラクティスとベストな方法が何であるかを理解できません.

ユーザー プロバイダー:

上記のアサーションに遭遇せずに誰かがすでにログインしている場合、アプリのロード時にユーザーを適切に設定するにはどうすればよいですか? ありがとう!