Flutter error

“setState() called after dispose()” 에러

브레드jung 2022. 5. 30. 13:53

에러 내용Permalink

setState() called after dispose()

원인Permalink

이는 해당 위젯이 이미 dispose()된 상태인데 setState()이 불려서 발생하는 에러이다.

해결 방법Permalink

이 에러는 this.mounted를 사용해서 해결할 수 있다. mounted는 위젯이 dispose()되는 순간 false가 되기 때문에, 아래와 같이 mounted이 true일 때만 setState()를 호출하도록 설정하면 된다

if (this.mounted) {
  setState(() {
    // state 변경에 대한 코드.
  });
}
반응형