본문 바로가기
Flutter/Flutter FAQ

Flutter InitState 메소드에서 비동기 데이터를 로드하는 방법이 있나요?, Is there a way to load async data on InitState method?

by 베타코드 2023. 5. 15.
반응형

질문


나는 InitState 메소드에서 비동기 데이터를 로드하는 방법을 찾고 있습니다. build 메소드가 실행되기 전에 일부 데이터가 필요합니다. GoogleAuth 코드를 사용하고 있으며 Stream이 실행될 때까지 build 메소드를 실행해야합니다.

내 initState 메소드는 다음과 같습니다:

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

어떤 피드백이든 감사히 받겠습니다.


답변


당신은 initState 내에서 async 메소드를 생성하고 호출할 수 있습니다.

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

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

댓글