getter 'length' 被调用为 null。接收器:空。如何解决列表列表的这个错误?

野生哈斯基威士忌

我有列表列表,我需要从中检索数据。我正在使用 Provider 从 API 获取数据。所以我用 2 Listview.builder 创建了 ExpansionTile,因为我已经读过为了检索数据我需要为每个列表使用一些循环,例如 Listview.builder。但现在它给了我错误

"The getter 'length' was called on null.
Receiver: null
Tried calling: length" 

但是当我使用 print 时,数组不为空,所以我不明白为什么会出现这个错误。

我的代码是:

class _StopScreensState extends State<StopScreens> {
  List<Stop> stop;
  List<Routes> routes;
  List <Arrival> arrivals;

  @override
  void didChangeDependencies() {
    stop = Provider.of<List<Stop>>(context).toList();
    routes = Provider.of<List<Routes>>(context).toList();
    super.didChangeDependencies();
  }

  @override
  Widget build(BuildContext context) {
    
    //The list of lists
    Iterable<Common> merge(List<Arrival> arrivals, List<Stop> stop,
        List<Routes> route) sync* {
      for (int i = 0; i < arrivals.length; i++) {
        var fishingTackle = routes.where((v) => v.mrId == arrivals[i].mrId).toList();
        var fishBait = stop.where((v) => v.stId == arrivals[i].stId).toList();
        yield Common(
          id: arrivals[i].mrId,
          typeId: arrivals[i].mrId,
          fishingTackle: fishingTackle,
          fishBait: fishBait,
          time: arrivals[i].taArrivetime,
        );
      }
    }
    
    //the common list for all arrays
    List<Common> common = merge(arrivals, stop, routes).toList();

    return Scaffold(
        appBar: AppBar(
          title: Text('Остановки'),
        ),
        body: Provider.value(value: common) == null
            ? Center(
          child: CircularProgressIndicator(),
        )
            : ListView.builder(
            itemCount: common.length,
            itemBuilder: (context, index) {
              return ListView.builder(
                itemBuilder: (BuildContext context, int index) {
                  return ExpansionTile(title: Text(common[index].fishingTackle[index].mrTitle),
                    children: [
                      ListView.builder(itemCount: stop.length,itemBuilder: (context, index){
                        return ListTile(
                          title: Text(common[index].fishBait[index].stTitle),
                          leading: Text(common[index].time.toString()),
                        );
耶稣爱你

这是因为您有一个空列表。

尝试始终使用空列表初始化您的列表,因此您无需处理每个列表的空值。

改变:

List<Stop> stop;
List<Routes> routes;
List <Arrival> arrivals;

List<Stop> stop = [];
List<Routes> routes = [];
List <Arrival> arrivals = [];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Flutter-将getter'length'调用为null

如何解决此问题:“将getter'length'调用为null”

getter'email'被调用为null

getter 'uid' 被调用为 null。接收器:null 尝试调用:uid Flutter Firebase

Flutter Camera插件错误-将getter'height'调用为null

NoSuchMethodError:getter 'status' 在颤动时被调用为 null

Flutter:在 null 上调用了 getter 'length'

getter 'dateOfBirth' 被调用为 null。接收者:null 尝试调用:dateOfBirth

getter 'docs' 被调用为 null。接收者:null 尝试调用:docs

打开屏幕并突然显示列表时,getter 'stream' 被调用为 null

Flutter错误:在null上调用了getter'length'

如何修复'NoSuchMethodError:在null上调用getter'length'

当我再次尝试登录时,出现此错误:- getter 'uid' 被调用为 null

清除flutter中的文本字段时,出现错误“ getter'year'被调用为null”

仅在我第一次运行时出错“在 null 上调用了 getter 'length'。接收器:空'

我的_showErrorMessage小部件在null上调用了getter'length'

未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'length'

Flutter-Nosuchmethoderror调用getter'length'为null

Flutter Qs:在 null 上调用了 getter 'length'

如何解决此错误“方法'/'被调用为空”

Flutter showSnackBar调用为null

方法 'Text' 被调用为 null

方法 'data' 被调用为 null

导航到另一页时,在null上调用了getter'length'

未处理的异常:NoSuchMethodError:在null上调用了getter'length'。不知道原因

来自 API 的数据调用为空

对getClass的jni调用为jobject返回null

方法 '[]' 在 Flutter 中被调用为 null

Flutter方法是否被调用为null?