【问题标题】:The getter isn't defined for the type <dynamics>没有为 <dynamics> 类型定义 getter
【发布时间】:2022-01-21 06:17:58
【问题描述】:

正在为即将到来的项目学习 Flutter 和 Dart。我有 Java 和 PHP 方面的经验,但这对我来说是非常新的。请帮帮我..

在下面附加的代码中的第 53 行和第 56 行出现错误,其中我包含了 stream.streamURL 和 stream.streamName 。

main.dart

    import 'package:flutter/material.dart';
    import 'streamData.dart';
    
    void main() => runApp(MaterialApp(
          home: firstCard(),
        ));
    
    class firstCard extends StatefulWidget {
      @override
      State<firstCard> createState() => _firstCardState();
    }
    
    class _firstCardState extends State<firstCard> {
      List<Streams> streamData = [
        Streams(streamName: "vishwesh", streamURL: "vishwesh.io"),
        Streams(streamName: "vxshwxsh", streamURL: "vxshwxsh.io")
      ];
    
      Widget streamTemplate(stream) {
        return StreamCard(stream: stream);
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            backgroundColor: Colors.grey[900],
            appBar: AppBar(
              title: Text('First Card'),
              centerTitle: true,
              backgroundColor: Colors.blueGrey[900],
              elevation: 0.0,
            ),
            body: Column(
              children: streamData.map((result) => streamTemplate(result)).toList(),
            ));
      }
    }
    
    class StreamCard extends StatelessWidget {
      final Stream? stream;
    
      StreamCard({this.stream});
    
      @override
      Widget build(BuildContext context) {
        return Card(
            margin: EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 16.0),
            child: Padding(
              padding: const EdgeInsets.all(12.0),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.stretch,
                children: <Widget>[
                  Text(stream?.streamURL,
                      style: TextStyle(fontSize: 20.0, color: Colors.grey[600])),
                  SizedBox(height: 6.0),
                  Text(stream.streamName,
                      style: TextStyle(fontSize: 14.0, color: Colors.grey[800]))
                ],
              ),
            ));
      }
    }

streamData.dart


class Streams {
  String? streamName;
  String? streamURL;

  Streams({required this.streamName, required this.streamURL});
}


【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    查看您的代码,我认为错误是由于您的代码中的拼写错误:

    class StreamCard extends StatelessWidget {
      final Stream? stream;
    

    您在 StreamCard 类中声明了 Stream 类型的变量,改为将其重命名为 Streams。最终代码为:

    class StreamCard extends StatelessWidget {
      final Streams? stream;
    

    【讨论】:

      【解决方案2】:

      final Stream? stream; 更改为final Streams? stream;。您没有使用在其他文件上创建的类,而是使用了 Dart 本身的抽象类。

      【讨论】:

      • 非常感谢。这是一个愚蠢的错误,空安全功能也使它变得更加困难
      猜你喜欢
      • 2021-11-22
      • 2021-07-27
      • 2020-09-02
      • 2021-07-23
      • 2022-10-09
      • 2021-10-19
      • 2021-08-29
      • 2021-05-21
      • 2021-02-03
      相关资源
      最近更新 更多