Skip to content

Instantly share code, notes, and snippets.

@mh61503891
Last active December 30, 2022 17:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mh61503891/2c9f9aee20ce1e36f0800dfccf070651 to your computer and use it in GitHub Desktop.
Save mh61503891/2c9f9aee20ce1e36f0800dfccf070651 to your computer and use it in GitHub Desktop.
SnackBar with Riverpod
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
// ...
ref.listen(
snackBarProvider,
(previous, next) {
if (mounted && next != null) {
ScaffoldMessenger.of(context).showSnackBar(next);
}
},
onError: (error, stackTrace) {
// TODO implement
},
);
// ...
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
final snackBarProvider =
StateNotifierProvider<SnackBarNotifier, SnackBar?>((ref) {
return SnackBarNotifier();
});
class SnackBarNotifier extends StateNotifier<SnackBar?> {
SnackBarNotifier() : super(null);
setSnackBar(SnackBar snackBar) {
state = snackBar;
}
}
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
// ...
ref.read(snackBarProvider.notifier).setSnackBar(
SnackBar(content: Text('Hello, world!')),
);
// ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment