Easy to use status management tool, Depends on the flutter.
add dep: only_store. then:
- create a new store class, which extends Provider:
import 'package:only_store/only_store.dart';
class Store extends Provider {
int counter = 1;
asyncIncrement() {
Future.delayed(const Duration(seconds: 2)).then((res) {
counter++;
$notify();
});
}
increment() {
counter++;
$notify();
}
reduce() {
counter--;
}
@override
toString() {
// stringify as inspect log
return "counter: $counter";
}
}
The store has two parts: data and actions.
Data is some of the properties defined on class Store.
Action is a function which host on Store instance.
You should extends Provider, it bring a function: $notify. you can use it to sync view when the data changes should reflect to view.
- get instance of Store.
final store = Store();
- create consumer of store instance.
final useStore = createConsumer(store);
- use consumer on where you want to subscribe data change.
useStore((store, context) {
return Text('${store.counter}');
}),
- use store to eval action.
TextButton(
onPressed: () {
store.increment();
},
child: const Text("hello"));
As you can see, it's so easy.
- middleware supports