吸气剂'文本'在空扑上被调用

问题描述 投票:0回答:3

我在Flutter应用中出现此错误:

NoSuchMethodError:在null上调用了getter'text'。接收者:null尝试致电:短信也可以看看:https://flutter.dev/docs/testing/errors

import 'package:flutter/material.dart';

void main() {
  runApp(
    NewApp()
  );
}

class NewApp extends StatefulWidget {
  NewApp({Key key}) : super(key: key);

  @override
  _NewAppState createState() => _NewAppState();
}

class _NewAppState extends State<NewApp> {
  TextEditingController textController;

  @override
  Widget build(BuildContext context) {
    return Container(
       child: Column(
         children: <Widget>[
           TextField(
            controller: textController,
          ),
          Text(
            textController.text
          )
         ],
       )
    );
  }
}
flutter variables dart controller null
3个回答
0
投票

似乎您尚未初始化TextEditingController。您可以在这样声明时进行初始化,

TextEditingController textController = TextEditingController();

在使用前必须对其进行初始化,否则实例textController保持为空,而textController.text被调用为空。


0
投票

您在其中存在几个错误,因此我将仅发布整个工作代码。您缺少MaterialApp和Scaffold窗口小部件。这些是您的App运行所必需的(在每个屏幕上都需要Scaffold)。

对于TextController,您必须检查控制器是否存在,以及controller.text是否具有值,否则,当小部件需要字符串时,尝试尝试分配null。我在这里用半人马表情解决了。

condition ? if yes block : if no block

完整代码:

import 'package:flutter/material.dart';

void main() {
  runApp(NewApp());
}

class NewApp extends StatefulWidget {
  NewApp({Key key}) : super(key: key);

  @override
  _NewAppState createState() => _NewAppState();
}

class _NewAppState extends State<NewApp> {
  TextEditingController textController;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Container(
            child: Column(
          children: <Widget>[
            TextField(
              controller: textController,
            ),
            Text(textController != null && textController.text != null
                ? textController.text
                : "")
          ],
        )),
      ),
    );
  }
}

0
投票

由于出现错误,因为尚未实例化textController,因此其值为null。您可以使属性调用可感知null来跳过错误:

textController?.text

不过您还会收到其他错误。修复了其他错误后,该应用程序可以运行,但我怀疑它是否可以满足您的要求。

© www.soinside.com 2019 - 2024. All rights reserved.