import 'package:provide/provide.dart';
class Counter with ChangeNotifier {
int _value;
int get value => _value;
Counter(this._value);
void increment() {
_value++;
notifyListeners();
}
}
...
@override
Widget build(BuildContext context) {
final currentCounter = Provide.value<Counter>(context);
return Column(children: [
Provide<Counter>(builder: (context, child, counter) => Text('${counter.value}'),),
StreamBuilder<Counter>(
initialData: currentCounter,
stream: Provide.stream<Counter>(context).where((counter) => counter.value % 2 == 0),
builder: (context, snapshot){
return Text('最后的值: ${snapshot.data.value}'));
}
FlatButton(child: Text('增加'), onPressed: currentCounter.increment),
Text('另一个不依赖于Counter的小部件'),
]);
}
...
void main() {
var counter1 = Counter(0);
var counter2 = Counter2(0);
var providers = Providers();
providers..provide(Provider<Counter>.value(counter1))
..provide(Provider<Counter>.value(counter2));
runApp(ProviderNode(
providers: providers,
child: CounterApp(),
));
}