【问题标题】:error: Undefined name 'widget' in Dart when trying to build navigation错误:尝试构建导航时 Dart 中未定义的名称“小部件”
【发布时间】:2021-10-02 18:43:39
【问题描述】:

有人可以帮助我吗?这里是 Flutter 的新手。

我有这个:

class SecondRoute extends StatelessWidget {
  final Place? place;
  const SecondRoute({Key? key, this.place}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Second Route"),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.pop(context);
          },
          child: Text(widget.place!.text!),
        ),
      ),
    );
  }

还有:

class PlaceDetail extends StatefulWidget {
  final Place? place;

  PlaceDetail({Key? key, this.place}) : super(key: key);

  @override
  _PlaceDetailState createState() {
    return _PlaceDetailState();
  }
}

我成功可以导航到下一页,但问题出在这部分:

child: Text(widget.place!.text!)

我正在尝试展示一些我使用 JSON 获取的内容。在不同的小部件中,那个特定的 widget.place!.text!就像一个魅力,但在这个类和小部件中,我无法让它工作,因此我得到了错误:

error: Undefined name 'widget'

如果我将它扩展到 State ,我会收到错误:

error: The return type 'SecondRoute' isn't a 'Widget'

我尝试按照此处的文档进行操作: https://flutter.dev/docs/cookbook/navigation/navigation-basics

正如我所提到的,导航本身可以工作,但是尝试从我在小部件中的 JSON 中获取数据时会出现错误。

编辑:

Text(${place?.text!}") 

上面给了我NULL。有没有机会在不给我 NULL 值的情况下将此变量发送到新页面/屏幕?

【问题讨论】:

    标签: json flutter dart


    【解决方案1】:
    child: Text(widget.place!.text!)
    

    应该是

    child: Text(this.place!.text!)
    

    或者干脆

    child: Text(place!.text!)
    

    尽管您应该考虑一下! 的用法。 不应该在这里没有必要。

    【讨论】:

    • 如果我这样做,我会得到:错误:没有为类型 'Place' 定义 getter 'text'
    • 我猜你的“Place”类没有文本属性?
    • 你是说 Place.dart?它有列表、字符串、整数......正如我所提到的,它适用于同一文件中的其他小部件。我应该检查什么以及在哪里检查?
    • 呃...您应该检查您的Place 类是否有一个名为text 的属性或字段。你的编译器说它没有,我倾向于相信它。
    • 是的,确实如此。请注意,如果您没有将 place 字段设为可空,而是将 required 设为空,您的编译器 已经告诉您了,因为不填充它会出现编译器错误而不是一个小时的调试旅程。 Null-Safety 很好而且很有用,了解它的作用并利用它来发挥自己的优势。
    猜你喜欢
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多