dash

Creator: coderz1093

Last updated:

0 purchases

dash Image
dash Images

Languages

Categories

Add to Cart

Description:

dash

Dash #

Dash is a simple but efficient library that provides and dispose BloCs class without headaches.
IMPORTANT: Dart2 is required to use this package.
Installation #

Add dash to your pubspec.yaml under the dependencies section:

dependencies:
dash: ^latest_version
copied to clipboard

Add build_runner and dash_generator to your pubspec.yaml under the dev_dependencies section:

dev_dependencies:
build_runner: ^2.0.3
dash_generator: ^latest_version
copied to clipboard
Usage #
1 - Create a provider class that is going to gathering all BlocProvider annotation:
IMPORTANT: Do not forget to add: part 'provider.g.dart';.
import 'package:dash/dash.dart';

part 'provider.g.dart';

@BlocProvider.register(MySampleBloc)
@BlocProvider.register(MyOtherBloc)
abstract class Provider {}

copied to clipboard
2 - Extends all your bloc class from Bloc. It will allow you to override dispose method.
IMPORTANT: All bloc class must has an instance() function that returns the instance of the bloc class as bellow.
class MySampleBloc extends Bloc {

@override
dispose() {
//close all streams
}

static Bloc instance() => MySampleBloc();

}

class MyOtherBloc extends Bloc {

@override
dispose() {
//close all streams
}

static Bloc instance() => MyOtherBloc();
}
copied to clipboard
3 - Run build_runner, it will generate the provider.g.dart class that you added as part on your provider class.
On project directory run on terminal:
pub run build_runner build
For flutter is:
flutter packages pub run build_runner build
Note: If you encounter a conflict error, please add the --delete-conflicting-outputs argument to your command:
flutter packages pub run build_runner build --delete-conflicting-outputs
4 - Finally you can get your bloc class instance from wherever you want, example:
@override
Widget build(BuildContext context) {
final _bloc = $Provider.of<MyOtherBloc>();

return Container();
}

@override
void dispose() {
$Provider.dispose<MyOtherBloc>();
super.dispose();
}
copied to clipboard
Changelog #
Please see the Changelog page to know what's recently changed.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.