How do I supply an initial value to a text field? How do I supply an initial value to a text field? dart dart

How do I supply an initial value to a text field?


You can use a TextFormField instead of TextField, and use the initialValue property. for example

TextFormField(initialValue: "I am smart")


(From the mailing list. I didn't come up with this answer.)

class _FooState extends State<Foo> {  TextEditingController _controller;  @override  void initState() {    super.initState();    _controller = new TextEditingController(text: 'Initial value');  }  @override  Widget build(BuildContext context) {    return new Column(      children: <Widget>[        new TextField(          // The TextField is first built, the controller has some initial text,          // which the TextField shows. As the user edits, the text property of          // the controller is updated.          controller: _controller,        ),        new RaisedButton(          onPressed: () {            // You can also use the controller to manipuate what is shown in the            // text field. For example, the clear() method removes all the text            // from the text field.            _controller.clear();          },          child: new Text('CLEAR'),        ),      ],    );  }}


You don't have to define a separate variable in the widget scope, just do it inline:

TextField(  controller: TextEditingController()..text = 'Your initial value',  onChanged: (text) => {},)