Please, check out: https://github.com/leocavalcante/observable_state
👌 A thin layer of a Redux-based state manager on top of RxDart.
Flutter bindings • React bindings
import 'dart:async';
import 'package:redurx/redurx.dart';
class State {
State(this.count);
final int count;
@override
String toString() => count.toString();
}
class Increment extends Action<State> {
Increment([this.by = 1]);
final int by;
State reduce(State state) => State(state.count + by);
}
class AsyncIncrement extends AsyncAction<State> {
@override
Future<Computation<State>> reduce(State state) async {
int result = await doAsyncTask();
return (State state) =>
State(count: state.count + result);
}
}
}
void main() {
final store = Store<State>(State(0));
store.add(LogMiddleware<State>());
print(store.state.count); // 0
store.dispatch(Increment());
// Before action: Increment: 0 (from LogMiddleware)
// After action: Increment: 1 (from LogMiddleware)
print(store.state.count); // 1
store.dispatch(Increment(2));
// Before action: Increment: 1 (from LogMiddleware)
// After action: Increment: 3 (from LogMiddleware)
print(store.state.count); // 3
}
Just give it a try. Feel free to open Issues and PRs!