dynamic_middleware 0.3.0 dynamic_middleware: ^0.3.0 copied to clipboard
A way to define middleware for redux dynamically
import 'dart:io';
import 'package:dynamic_middleware/dynamic_middleware.dart';
import 'package:redux/redux.dart';
/// Simple reducer that increments the state
int reducer(int state, dynamic action) => state+1;
/// Store that holds state value as an integer
Store<int> store;
/// Basic dynamic middleware object used to add and remove middleware
DynamicMiddleware<int> dynamicMiddleware;
/// Simple middleware that adds a line of standard output on all actions
void middleware(Store<int> store, dynamic action, NextDispatcher next) => stdout.writeln("Middleware enabled");
void main() {
dynamicMiddleware = new DynamicMiddleware<int>();
store = new Store<int>(reducer, initialState: 0, middleware: [dynamicMiddleware]);
String input;
while(input != "q") {
stdout.writeln('Hit enter to dispatch an action,\nType "m" to dispatch an action with dynamic middleware,\nType "q" to quit');
input = stdin.readLineSync();
if(input == "m") {
dynamicMiddleware.add(middleware);
}
store.dispatch("action");
stdout
..write("Counter: ")
..writeln(store.state);
dynamicMiddleware.clear();
}
}