less than 1 minute read

에러

setState() called after dispose(): (lifecycle state: defunct, not mounted

위젯이 마운트 되지 않은 상태에서 setState 함수를 호출하면 나오는 에러라고 한다.
내가 async 함수에서 setState를 쓰려고 했는데 await 이후에는 더 이상 마운트 되지 않는다고 한다.

솔루션

아래와 같이 해결할 수 있다.

if(mounted){
  setState(() {});
}

Mounted

마운트란?
State를 생성하면, 마운트라는 boolean 속성을 true로 설정해서, State를 BuildContext와 연결한다.
이 속성은 이 State가 현재 위젯 트리에 있는지, 없는 지에 대한 정보를 제공한다.