Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
state_example: binder page
class BinderPage extends StatefulWidget {
const BinderPage({Key key}) : super(key: key);
@override
_BinderPageState createState() => _BinderPageState();
}
class _BinderPageState extends State<BinderPage> {
TextEditingController _controller;
@override
void initState() {
super.initState();
_controller = TextEditingController();
}
@override
void dispose() {
_controller?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
// Subscribe to NotesState
final state = context.watch(notesRef);
return Scaffold(
appBar: AppBar(title: Text('My notes app')),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
FlatButton(
onPressed: () {
// Get a reference of NotesViewLogic
// and add a note.
context.use(notesViewLogicRef).addNote();
_controller.clear();
},
child: Text('Create Note')),
TextField(
controller: _controller,
// Get a reference of NotesViewLogic
// and update the input value.
onChanged: (value) =>
context.use(notesViewLogicRef).updateInput(value),
decoration: InputDecoration.collapsed(hintText: 'Add a note'),
),
Divider(),
Expanded(
child: ListView.builder(
itemBuilder: (context, index) => Note(text: state.notes[index]),
itemCount: state.notes.length,
),
)
],
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment