safeSetState method

void safeSetState(
  1. VoidCallback callback
)

Safely updates the widget state.

This prevents errors that occur when calling setState on an unmounted widget.

Example:

class MyWidget extends StatefulWidget { ... }

class _MyWidgetState extends State<MyWidget> {
  int counter = 0;

  void increment() {
    safeSetState(() {
      counter++;
    });
  }
}

Implementation

void safeSetState(VoidCallback callback) {
  if (mounted) {
    // ignore: invalid_use_of_protected_member
    setState(callback);
  } else {
    debugLog(
      'WARNING: Attempted to update state on an unmounted widget.',
      level: LogLevel.warning,
    );
  }
}