Фотографии ниже - моя коллекция базы данных. У меня есть два документа:
- В документе "1" у меня есть коллекция из 8 предметов
- В документе "1B" есть коллекция из 9 предметов.
Когда я вызываю его в Таблице данных, как показано ниже, я получаю ошибку * NoSuchMethodError: Получающие «ячейки» были вызваны с нулевым значением. Receiver: null Пробный вызов: ячейки в «1» при нажатии, тогда как в документе «2» я получаю все поля, как определено.
Как можно устранить ошибку и правильно отобразить данные?
import 'package:flutter/material.dart';
class BusInfo extends StatelessWidget {
BusInfo({
@required this.routenum,
this.stop1,
this.stop2,
this.stop3,
this.stop4,
this.stop5,
this.stop6,
this.stop7,
this.stop8,
this.stop9,
});
final routenum;
final stop1;
final stop2;
final stop3;
final stop4;
final stop5;
final stop6;
final stop7;
final stop8;
final stop9;
@override
Widget build(BuildContext context) {
return Scaffold(
body: DefaultTabController(
length: 2,
child: Scaffold(
appBar: AppBar(
title: Text(routenum),
backgroundColor: Color(0xFFBDBDBD),
elevation: 3,
bottom: TabBar(indicatorSize: TabBarIndicatorSize.label, tabs: [
Tab(
child: Align(
alignment: Alignment.center,
child: Text("Route Info"),
),
),
Tab(
child: Align(
alignment: Alignment.center,
child: Text("Timetable"),
),
),
]),
),
body: TabBarView(children: [
Center(
child: Column(
children: <Widget>[
DataTable(
columns: [
DataColumn(
label: Text('Margeot - Victoria'),
),
],
rows: [
DataRow(cells: [
DataCell(Text(stop1)),
]),
DataRow(cells: [
DataCell(Text(stop2)),
]),
DataRow(cells: [
DataCell(Text(stop3)),
]),
DataRow(cells: [
DataCell(Text(stop4)),
]),
DataRow(cells: [
DataCell(Text(stop5)),
]),
DataRow(cells: [
DataCell(Text(stop6)),
]),
DataRow(cells: [
DataCell(Text(stop7)),
]),
DataRow(cells: [
DataCell(Text(stop8)),
]),
// DataRow(cells: [
// DataCell(Text(stop8)),
// ]),
stop9 != null
? DataRow(cells: [
//this is the code if stop 9 is not equal to null
DataCell(Text(stop9)),
])
: null //this is the code if stop 9 is equal to null
],
sortColumnIndex: 0,
sortAscending: true,
),
]),
),
Icon(Icons.movie),
]),
)));
}
}