Home > Blockchain >  How the onChange TextField pass the data over into button onPressed property
How the onChange TextField pass the data over into button onPressed property

Time:11-06

I'm trying to pass data from TextField with onChange property to onPressed button.

If I type my string as below:

String newTextTitle;

then I get error on print(newTextTitle);:

The non-nullable local variable 'newTextTitle' must be assigned before it can be used. Try giving it an initializer expression, or ensure that it's assigned on every execution path.

So I change it to

String? newTextTitle;

then the error won't appear again. But The data won't pass from TextField to my button, actually passing null.

And if I assigned some string then it is printing always what I assigned regardless of any change in the TextField.

My TextField code:

TextField(
 autofocus: true,
 textAlign: TextAlign.center,
 onChanged: (newValue) {
  newTextTitle = newValue;
 },
),

My button code:

TextButton(
 onPressed: () {
  print('Passing Test $newTextTitle');
 },
),

my output consol:

I/flutter (23788): Passing Test null

This code is worked so fine in older flutter. But now I used Flutter 2.5.2 and there is somthing has been changed.

CodePudding user response:

Using a TextEditingController is the Flutter recommended way of doing what your trying to do. See (enter image description here

String? newTextTitle; //past it here
Buildwidget(){
String? newTextTitle; //remove from here

}
  • Related