• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

RootTab 이동시 if(!mounted) return; 에 관해

22.12.31 18:58 작성 조회수 691

1

안녕하세요. 초급 완강하고 중급을 듣고 있는 중입니다.

현재 기초적인 RootTab 을 만들고 로그인 성공시 해당 페이지로 넘어가도록 설정하는 과정에서 에러,

do not use BuildContext across async gaps.가 발생하여 검색해보니

if(!mounted) return;
Navigator.of(context).push(MaterialPageRoute(builder: (_)=>RootTab(),),);

위와같이 if(!mounted);를 넣는 방법이 있다는 것을 알았습니다. 설명도 읽어보긴 했으나 조금 이해가 안되어서 질문드립니다.

if(!mounted) return; 이 없어도 작동은 하더라구요.

해결은 됐는데, 이 에러의 의미와 해결법의 의미가 무엇인지 궁금합니다.

 

연말잘보내시고, 새해복 많이 받으세요.

답변 2

·

답변을 작성해보세요.

0

한대호님의 프로필

한대호

2023.11.21

크..

mounted 관련되어 찾아보는데 도움되었네요 감사합니다!!

0

안녕하세요!

에러가 아니고 워닝입니다.

async 함수 내에서 await 부분 앞뒤로 로직을 실행할경우 위젯이 마운팅돼있지 않을수가 있다는 에러인데 해결하신 방식대로 해결하시면 됩니다.

공식 다큐멘테이션도 똑같이 작성돼있습니다! 아래 링크를 참고해주세요!

https://dart-lang.github.io/linter/lints/use_build_context_synchronously.html