首页 > 解决方案 > 错误:使用 ListView 时未定义命名参数“children”

问题描述

我正在使用 Firebase 实时数据库来检索信息,然后将其呈现在可滚动的 DataTable 中。

为了使 DataTable 可滚动,我将它包装在 ListView 中,根据这篇文章的评论: DataTable - 使可滚动,设置背景颜色和修复/冻结标题行和第一列

这是我的代码:

import 'package:flutter/material.dart';
import 'package:firebase_database/firebase_database.dart';
import 'cprdata.dart';
import 'dart:convert';


class CprAnalysis extends StatefulWidget {
  @override
  CPRState createState() => CPRState();
}

class CPRState extends State<CprAnalysis> {

  ///var cpr = UpdateData.getData();
  List<FilterData> acData;

  List<FilterData> getData() {
    var cpr = <FilterData>[];

    DatabaseReference cprData = FirebaseDatabase.instance.reference();
    cprData.reference().once().then((DataSnapshot snap) {
      var d = snap.value;
      final jsonE = json.encode(d);
      final jsonResponse = json.decode(jsonE);
      MyDataList zz = new MyDataList.fromJson(jsonResponse);
      zz.myList.forEach((data) {
        cpr.add(FilterData(sYMBOL: data.SYMBOL, fORECAST: data.FORECAST));
      }
      );
    },
    );
    print(cpr);
    return cpr;
  }

  @override
  void initState() {
    super.initState();
    acData = getData();
  }

  Widget bodydata() => Expanded(
            child: ListView(
              ///shrinkWrap: true,
              padding: const EdgeInsets.all(8.0),
              childern: <Widget>[
                SingleChildScrollView(
                  scrollDirection: Axis.horizontal,
                  child: DataTable(
                  columns: <DataColumn>[
                    DataColumn(
                      label: Text("Symbol"),
                      numeric: false,
                    ),
                    DataColumn(
                      label: Text("Forecast"),
                      numeric: false,
                    ),
                  ],

                  rows: acData.map((data) =>
                      DataRow(
                        cells: [
                          DataCell(
                            Text(data.sYMBOL),
                            showEditIcon: false,
                            placeholder: false,
                          ),
                          DataCell(
                            Text(data.fORECAST),
                            showEditIcon: false,
                            placeholder: false,
                          )
                        ],
                      ),
                  )
                      .toList()
              ),
          ),
          ]
        ),
  );

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("CPR Analysis"),
      ),
      body: Container(

        child: bodydata(),
      ),
    );
  }
}


class FilterData {
  String sYMBOL, fORECAST;

  FilterData({
    this.sYMBOL,
    this.fORECAST});
}


预期输出:可滚动数据表。

实际输出:错误:命名参数“childern”未在 ListView() 下定义

标签: listviewdartflutter

解决方案


您在代码中children拼写错误。childern

将您的ListView代码设置为 -

ListView(
  children: <Widget> [
    //Your remaining code
  ]
),

推荐阅读