如何修复'文本在扑打中为空'

时间:2019-01-27 11:24:01

标签: dart flutter

我想创建一个具有带有两个选项卡的TabBarView的应用程序。在第一个选项卡上有一个文本字段,在另一个选项卡上有一个文本小部件,该小部件应显示您输入到文本字段中的文本 但是我总是会因为文本为空而报错。(我是使用flutter编程的新手)

我尝试在TextOutput类中初始化变量,但是由于变量是最终变量,因此无法正常工作。

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); 
}
}

2 个答案:

答案 0 :(得分:3)

因此,对于任何搜索到此并到达此处的人,我正在使用它来管理null字符串变量。

1。显示空文字

String nullText;

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

2。不显示文字小工具

String nullText;

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

您也可以这样显示,但这显示

String nullText;

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

实时示例https://dartpad.dev/faab5bc3c2df9573c0a75a5ce3d4b4b9

答案 1 :(得分:0)

从问题中提供的信息尚不清楚,是什么代码导致了错误,但我想这是这一行:

return Text(textvalue); 

如果将其更改为

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

您的错误应该消失了。