我正在试着开发一款Flutter 翼应用程序.这场风波正在为纸牌游戏打造团队.在团队成立之后,可以通过来计算积分,这样你就不必go 想每个人有多少分了.

但我遇到了一个异常,我知道异常在哪里,它意味着什么,但我不知道如何解决这个问题.我希望你们中的一些人能帮助我.

以下是引发错误的代码:

import 'package:flutter/material.dart';


class Punktezaehler extends StatefulWidget{

  final List<String> spieler_namen;
  Punktezaehler(this.spieler_namen);

  @override
  State<StatefulWidget> createState() => new _Punktezaehler(this.spieler_namen);
}


class _Punktezaehler extends State<Punktezaehler>{

  final List<String> spieler_namen;
  _Punktezaehler(this.spieler_namen);

  List<int> punkteanzahl_teamEins;
  List<int> punkteanzahl_teamZwei;

  @override
  Widget build(BuildContext context) {


    var spieler1 = spieler_namen[0].substring(0,3);
    var spieler2 = spieler_namen[1].substring(0,3);
    var spieler3 = spieler_namen[2].substring(0,3);
    var spieler4 = spieler_namen[3].substring(0,3);

    return new Scaffold(
      appBar: new AppBar(
        automaticallyImplyLeading: false,
        title: new Text("$spieler1 & $spieler2 vs" +" $spieler3 & $spieler4"),
        actions: <Widget>[

        ],
      ),
      body: Container(
        child: new Row(
          children: <Widget>[
            new Column(
              children: <Widget>[
                new IconButton(
                    icon: Icon(Icons.exposure_plus_2),
                    onPressed: () => punkte_hinzuzaehlen(1, 2)
                )
              ],
            ),
            new Column(
              children: <Widget>[
                //new FlatButton(onPressed: () => print(punkteanzahl_teamEins.length), child: new Text("Punkte")),
                ListView.builder(
                  itemCount: punkteanzahl_teamEins.length, //--> Error is thrown here
                  itemBuilder: (context, index){
                    return Text(punkteanzahl_teamEins[index].toString());
                  }
                ),
                new Row()
              ],
            ),
            new Column(
              children: <Widget>[
                new IconButton(
                    icon: Icon(Icons.exposure_plus_2),
                    onPressed: () => punkte_hinzuzaehlen(2, 2)
                )],
            )
          ],
        )
      ),
    );
  }

  void punkte_hinzuzaehlen(int team, int nummer){
    if (team == 1){
      //Team 1 bekommt die Punkte
      print("Team 1 gets points");
    }
    else if(team == 2){
      //Team 2 bekommt die Punkte
      print("Team 2 gets points");
    }
  }
}

以下是错误信息:

══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter (26028): The following NoSuchMethodError was thrown while handling a gesture:
I/flutter (26028): The getter 'length' was called on null.
I/flutter (26028): Receiver: null
I/flutter (26028): Tried calling: length

修复后,我收到另一个错误:

══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (26028): The following assertion was thrown during performResize():
I/flutter (26028): Vertical viewport was given unbounded width.
I/flutter (26028): Viewports expand in the cross axis to fill their container and constrain their children to match
I/flutter (26028): their extent in the cross axis. In this case, a vertical viewport was given an unlimited amount of
I/flutter (26028): horizontal space in which to expand.

推荐答案

punkteanzahl_teamEins只被宣布.但没有初始化.所以它抛出了空错误.

您应该将值赋给punkteanzahl_teamEins,作为

List<int> punkteanzahl_teamEins = [1,4,5,7];

或根据需要从父级传递数据.

Dart相关问答推荐

Dart:判断泛型函数的类型 T

带有字符串键的 Dart Map,与忽略大小写进行比较

Card宽度与父级匹配

一键式 Flutter 工具提示

如何在streambuilder中查询firestore文档并更新listview

`pub get` 将 pubspec 依赖项下载到哪里?

IOS中Webview Flutter字体太小

如何在Flatter中zoom 两个谷歌 map 标记

LinearProgressIndicator Flutter使用

如何删除ios上的overscroll?

如何在 Flutter 中渲染单个像素?

Flutter-创建一个倒计时(countdown)小部件

如何在控件边框(border()/阴影(shadow)中添加霓虹灯效果?

判断Dart中是否提供了可选参数

如何提取dart/Flutter视频元数据

如何在imageprovider类型中传递图像资源?

如何正确管理 Flutter 应用中的全局 textScaleFactor?

为什么 Dart 有编译时常量?

Dart 中 Promise.all 的类比?

你如何在 Dart 中创建一个 Stream?