Skip to content

Instantly share code, notes, and snippets.

@Abion47
Created June 9, 2019 21:13
Show Gist options
  • Save Abion47/13d469da5605faa2e3b4e188f40e0fd9 to your computer and use it in GitHub Desktop.
Save Abion47/13d469da5605faa2e3b4e188f40e0fd9 to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class ReactiveWidget extends StatefulWidget {
@override
State<StatefulWidget> createState() => ReactiveWidgetState();
}
class ReactiveWidgetState extends State<ReactiveWidget> {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<ProviderState>(
builder: (_) => ProviderState(),
child: ReactiveWidgetChild(),
);
}
}
class ReactiveWidgetChild extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<ProviderState>(
builder: (_, state, child) {
return Center(
child: Text(state.value.toString()),
);
}
);
}
}
class ProviderState with ChangeNotifier {
int _value;
ProviderState() : _value = 0;
int get value => _value;
set value(int v) {
_value = v;
notifyListeners();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment