개발노트

[Flutter] Visual Studio Code 사용 시, Don't use BuildContext's across async gaps 경고 없애기 본문

미분류 노트

[Flutter] Visual Studio Code 사용 시, Don't use BuildContext's across async gaps 경고 없애기

mroh1226 2023. 12. 27. 18:27
반응형

context를 소스에 사용할 때면 Don't use BuildContext's across async gaps 라고 경고가 뜬다.

경고 메시지

 

경고가 발생하는 원인:

- BuildContext context 를 사용자 정의 Class에 직접 저장할 경우,

Widget이 mount 되었는지 확실하지 않으며,

async 뒤에 mount 되지않은 context를 사용하면 그 안에 값이 들어있지 않을 수 있기 때문이다.


해결방법:

- context 사용 전에 mount가 되었는지 아래와 같이 조건문을 걸어준다.

 

State를 사용하는 Widget일 경우 (StatefulWidget 등...)

if(!mounted) return;

 

State를 사용하지 않는 Widget일 경우(ConsumerWidget 등...)

if (context.mounted) {
          //context를 사용하는 소스
}

* if(!context.mounted) return; 으로 사용하고 싶은데 이렇게 사용하면 동일하게 경고가 뜬다.

if문안에 소스를 작성하기 싫더라도 위와 같이 해줘야 경고가 사라진다.

 


예시.

 

 

반응형
Comments