Flutter integration with MobX.dart.
Provides the Observer
widget that listens to observables and automatically
rebuilds on changes.
class CounterExample extends StatefulWidget {
const CounterExample({Key key}) : super(key: key);
@override
_CounterExampleState createState() => _CounterExampleState();
}
class _CounterExampleState extends State<CounterExample> {
final _counter = Counter();
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(
title: const Text('Counter'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'You have pushed the button this many times:',
),
Observer(
builder: (_) => Text(
'${_counter.value}',
style: const TextStyle(fontSize: 20),
)),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _counter.increment,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
);
}
Notice the use of the Observer
widget that listens to _counter.value
, an observable, and rebuilds on changes.
You can go here for more examples
Observer(Widget Function(BuildContext context) builder)
The builder
function will be monitored by MobX and tracks all
the observables that are being used inside it. When any of the
observables change, builder will be called again to rebuild the
Widget
. This gives you a seamless way to create a reactive Widget
.
Note that the Observer
will print a warning if no observables are discovered in the builder
function.