작성
·
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
0
안녕하세요!
에러가 아니고 워닝입니다.
async 함수 내에서 await 부분 앞뒤로 로직을 실행할경우 위젯이 마운팅돼있지 않을수가 있다는 에러인데 해결하신 방식대로 해결하시면 됩니다.
공식 다큐멘테이션도 똑같이 작성돼있습니다! 아래 링크를 참고해주세요!
https://dart-lang.github.io/linter/lints/use_build_context_synchronously.html