인프런 커뮤니티 질문&답변

bubble gun님의 프로필 이미지
bubble gun

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

간단한 로그인 시스템 만들어보기

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

작성

·

898

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

크..

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

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

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

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

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

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

bubble gun님의 프로필 이미지
bubble gun

작성한 질문수

질문하기