Do not use BuildContexts across async gaps

Don’t stock context directly into custom classes, and don’t use context after async if you’re not sure your widget is mounted. Do something like this: class MyCustomClass { const MyCustomClass(); Future<void> myAsyncMethod(BuildContext context, VoidCallback onSuccess) async { await Future.delayed(const Duration(seconds: 2)); onSuccess.call(); } } class MyWidget extends StatefulWidget { @override _MyWidgetState createState() => _MyWidgetState(); } … Read more