[Flutter] dispose() error 해결

hodu·2023년 4월 21일
0

Flutter

목록 보기
10/30

Flutter에서 viewModel 사용 시, 화면전환을 빠르게 한다면, 화면을 다 그리지 않은 상태에서 다시 그릴 때, dipose오류가 발생한다.
그렇기 때문에 dipose() 메서드를 재정의 하여 화면을 다 그렸다는 것을 알려줘야 된다.

오류 내용

Exception has occurred.
FlutterError (A ViewModel was used after being disposed.
Once you have called dispose() on a ViewModel, it can no longer be used.)


해결 방안

class viewModel with ChangeNotifier{
  bool _disposed = false;

  @override
  void dispose() {
    _disposed = true;
    super.dispose();
  }

  @override
  notifyListeners() {
    if (!_disposed) {
      super.notifyListeners();
    }
  }
}
profile
Flutter developer

0개의 댓글