import 'package:flutter/widgets.dart'; mixin SafeStateMixin on State { @override void setState(VoidCallback fn) { //can't call setState() if the stateful widget is not mounted, i.e. removed from the tree. if (this.mounted) { super.setState(fn); } } }