InitState メソッドで非同期データをロードする方法はありますか? 質問する

InitState メソッドで非同期データをロードする方法はありますか? 質問する

InitState メソッドで非同期データをロードする方法を探しています。ビルド メソッドが実行される前にデータが必要です。GoogleAuth コードを使用しており、Stream が実行されるまでビルド メソッドを実行する必要があります。

私の initState メソッドは次のとおりです:

 @override
  void initState () {
    super.initState();
    _googleSignIn.onCurrentUserChanged.listen((GoogleSignInAccount account)     {
      setState(() {
        _currentUser = account;
      });
    });
    _googleSignIn.signInSilently();
  }

フィードバックをいただければ幸いです。

ベストアンサー1

メソッドを作成しasync、それをinitState

@override
void initState () {
  super.initState();
  WidgetsBinding.instance.addPostFrameCallback((_){
    _asyncMethod();
  });
        
}

_asyncMethod() async {
  _googleSignIn.onCurrentUserChanged.listen((GoogleSignInAccount account)     {
    setState(() {
      _currentUser = account;
    });
  });
  _googleSignIn.signInSilently();
}

おすすめ記事