7

I want to create an app which has a TabBarView with two tabs. On the first Tab there is a Textfield and on the other tab there is a text widget which should display the text which you entered into Textfield but I always get an error because text is null.( I'm new in programming with flutter)

I tried to initialize the variable in TextOutput class but it didn't work because the variable is final.

TabBarView(
      children: <Widget>[
        TextCreatePage(), TextOutput()
      ],




class TextCreatePageState extends State<TextCreatePage> {
String textvalue;
@override
Widget build(BuildContext context) {
  return Center(child: TextField(
    onChanged: (String value) {
    setState(() {
       textvalue = value;
       TextOutput(textvalue: textvalue,);
            });





class TextOutput extends StatelessWidget {
final String textvalue;

TextOutput({this.textvalue});
@override
Widget build(BuildContext context) {
    return Text(textvalue); 
}
}
Cl_Rtg08
  • 81
  • 1
  • 1
  • 6

3 Answers3

15

So, for anyone that search this and got here, I'm using this to manage null String variables.

1. Show Empty Text

String nullText; //for null-safety change to: String? nullText;

//now, inside of your widget build
Text(nullText ?? '');

2. Not show Text Widget

String nullText;

//now, inside of your widget build
if(nullText != null)
 Text(nullText);

with null-safety

String? nullText;

//now, inside of your widget build
if(nullText != null)
 Text(nullText!);

Also you can show like this, but this show the null word

String nullText; //for null-safety change to String? nullText;

//now, inside of your widget build
Text('$nullText');

Live Example https://dartpad.dev/faab5bc3c2df9573c0a75a5ce3d4b4b9

Hector Aguero
  • 369
  • 3
  • 8
3

It's not clear from the information your provided in your question what code causes the error, but I guess it is this line:

return Text(textvalue); 

If you change it to

return textvalue != null ? Text(textvalue) : Container(); 

your error should go away.

Günter Zöchbauer
  • 623,577
  • 216
  • 2,003
  • 1,567
0

Hector Aguero's answer is what I've been doing to workaround the error.

I use this everywhere:

Text(nullText ?? '');

But I wonder what's stopping Flutter team to make Text() widget support null value?

// This should be acceptable and simply not rendering any text
// why they don't allow this is beyond me
Text(nullText);
Kagawa
  • 1,319
  • 2
  • 21
  • 33