Flutter - 方法“map”被调用为空

2023-12-19

我在尝试使用对象模型从 api JSON 添加元素时收到以下错误DropdownMenuItem

这是错误:

The method 'map' was called on null.
Receiver: null
Tried calling: map<DropdownMenuItem<Provinces>>(Closure: (Provinces) => DropdownMenuItem<Provinces>)

这是我的飞镖代码:

import 'dart:async';

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:sj/utils/constants.dart';
import 'package:http/http.dart' as http;
import 'package:sj/models/master/provinces.dart';

class IdCardFormPage extends StatefulWidget {
  @override
  _IdCardFormPageState createState() => new _IdCardFormPageState();
}

class _IdCardFormPageState extends State<IdCardFormPage> {

  List<Provinces> listProvinces;
  Provinces _selectedProvince;

  Future<List<Provinces>> getProvinceList() async {
    //final response = await http.get("${APIConstants.API_BASE_URL}api/masters/provincesList.php");
    final response = await http.get("url");

    listProvinces = parseProvinces(response.body);

    return parseProvinces(response.body);
  }

  List<Provinces> parseProvinces(String responseBody) {
    final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();

    return parsed.map<Provinces>((json) => Provinces.fromJson(json)).toList();
  }


  @override
  void initState() {

    getProvinceList();

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(title: new Text("MASUK"),),
      body: _provinceContainer(),
    );
  }

  Widget _provinceContainer(){
    return new Container(
        child: new InputDecorator(
          decoration: InputDecoration(
              suffixIcon: new Icon(
                Icons.account_balance,
                color: Colors.pink,
              ),
              labelText: LoanEntryField.PD_BANKNAME, labelStyle: TextStyle(fontSize: 16.0)
          ),
          isEmpty: _selectedProvince == null,
          child: new DropdownButtonHideUnderline(
            child: new DropdownButton<Provinces>(
              value: _selectedProvince,
              isDense: true,
              onChanged: (Provinces newValue) {
                setState(() {
                  _selectedProvince = newValue;
                });
              },
              items: listProvinces.map((Provinces value) {
                return new DropdownMenuItem<Provinces>(
                  value: value,
                  child: new Text(value.name, style: new TextStyle(fontSize: 16.0),),
                );
              }).toList(),
            ),
          ),
        ),
        margin: EdgeInsets.only(bottom: 10.0));
  }

}
class Provinces{
  String id;
  String name;

  Provinces({this.id, this.name});

  factory Provinces.fromJson(Map<String, dynamic> json) {
    return Provinces(
      id: json['id'] as String,
      name: json['name'] as String,
    );
  }

}

如何解决这个问题?


传递一个空容器,同时listProvices is null:

items: listProvices?.map((Provinces value) {
            return new DropdownMenuItem<Provinces>(
              value: value,
              child: new Text(value.name, style: new TextStyle(fontSize: 16.0),),
            );
          })?.toList() ?? [],
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter - 方法“map”被调用为空 的相关文章

  • 最终变量是否有性能提升? [复制]

    这个问题在这里已经有答案了 是的 标题 写作时有什么区别 显然除了设计之外 final or not 对于 Flutter 中构建的应用程序 final 和 const 关键字都可以提高性能并减少 APK 大小 常量 Widget具有不同的
  • 意外的迭代器函数和 Iterable.take 行为

    我正在编写一个名为 批次 的简单函数 该函数应该将一个可迭代对象拆分为大小为 size 的可迭代对象的可迭代对象 然后我遇到了生成器函数和 Iterable take 方法的奇怪行为 当期望 知道 python 生成器行为时 这段代码 It
  • 如何围绕指定的锚点以 2D 方式旋转容器小部件?

    我想对容器小部件 包含一些其他小部件 执行非常简单的 2D 旋转 该小部件将围绕中心的单个固定点旋转 不会变形 我尝试使用transform财产与Matrix4 rotationZ 这有点起作用 但锚点在top left角落 不在cente
  • 使用 flutter 构建 iOS 项目时出现的问题

    升级 Xcode 15 beta 5 后 无法构建项目 显示错误 Firebase 1 问题 DT TOOLCHAIN DIR 不能用于评估 LIBRARY SEARCH PATHS 请改用 TOOLCHAIN DIR FirebaseAn
  • Flutter showDialog、AlertDialog背景渐变。

    对于颜色 我可以使用dialogBackgroundColor给予的财产AlertDialog背景我自己的颜色 我本来想用Gradient作为我的背景 我该如何使用它 DecoratedBox是需要的东西 但我不知道该用什么包裹起来 谁能给
  • 如何停止抖动中的计时器?

    我在 flutter 中创建了一个计时器 一切正常 现在我不知道如何在启动计时器后关闭它 文档说你可以通过调用取消它void cancel 但我不明白其实现 我该怎么称呼它 这是正确的方法吗 static const timeout con
  • Dart 有类似 Python 中的“defaultdict”之类的东西吗?

    我想做的是下面这个 如果可能的话 你能教我如何做到这一点吗 import package my package data object dart Map
  • iPhone 上的 Flutter 底部填充颜色

    是否可以更改 iPhone 附带的底部填充的颜色 包裹你的 材料应用程序 与下面的代码main dart class AnnotatedRegion
  • Flutter - 如何在 ListView 构建器中列出 forEach() 值?

    您好 我正在尝试将数据从 JSON 列出到 Listview Builder 但 Flutter 给了我这个错误 Column s children must not contain any null values but a null v
  • Flutter - 将未来列表传递给 SearchDelegate

    我一直在关注 Flutter Search 教程 我一直在尝试使用从未来列表派生的列表来实现相同的功能 其中数据来自 api 在本例中是 Aqueduct 服务器 目前我的屏幕列出了 api 中的所有联系人 我现在想搜索该联系人列表 我假设
  • 如何在 flutter/dart 中使用设定大小的自定义字体?

    我正在尝试使用color fontWeight and fontFamily with style style copyWith 我尝试使用的自定义字体是Vonique 我已经将它像这样导入到pubspec yaml fonts famil
  • 如何更改或替换 Flutter 中的 ImageCache?

    我想更改 Flutter 应用程序中 ImageCache 的行为 例如 我想尝试不同的驱逐策略 或者 我只是想要零缓存 用于实验 如何替换更改ImageCache 创建一个继承自 WidgetsFlutterBinding 的类 重写该类
  • 将两个 @observable 变量动态绑定(或格式化)到第三个 @observable 变量

    这是我认为可能更容易一些的事情 尽管问题很具体 但我对任何能让我根据 Polymer dart 其他两个字段的内容自动更新第三个表单字段的方法感兴趣 像这样 其中 代表表单字段 姓名 名字 姓氏 全名 家庭名称 名字 例如 如果有人进入 J
  • 如何根据父级的大小来布局小部件?

    假设您有一个可能具有可变大小的父窗口小部件 例如 var container new Container height 200 0 Imagine this might change width 200 0 Imagine this mig
  • Flutter / FireStore:如何在 Flutter 中显示 Firestore 中的图像?

    我想将我在应用程序中使用的一些图像放入 Firestore 并从那里显示它们 而不是将它们作为资产捆绑在我的应用程序中 为了做到这一点 我想出了以下解决方案 对于我想要显示图像的项目 我创建了一个 Firebase 文档 其中有一个字段存储
  • DraggableScrollableSheet 拖动时不会给出工作表的当前位置

    在flutter中我们有一个小部件可拖动可滚动表 现在我想要子元素拖动时的当前位置或当前大小 目前还没有办法获得该值 它在其构建器方法中提供了 ScrollController 但那是在列表滚动时而不是在拖动列表时 那么还有另一种方法可以跟
  • 当 TextFormField 聚焦时如何隐藏错误外观

    我在用着TextFormField用于表单和自定义验证器方法返回错误消息 我试图隐藏默认错误消息和错误边框TextFormField当文本字段获得焦点时 TextFormField focusNode focusNode validator
  • 是否可以从图像中获取图像 GPS 位置坐标?

    我正在构建一个 Flutter 应用程序 用户可以在其中发布照片及其位置 用户可以从相机或图库中获取图片 如果用户从相机拍照 我可以使用设备的 GPS 位置来设置图片的位置 我正在尝试根据图片的元数据获取图片的 GSP 位置 但是 我还没有
  • TabController 中的通知监听器用于无限滚动

    我有 4 个选项卡 我想在其中添加延迟加载或无限滚动选项 早些时候我尝试使用滚动控制器 但当它到达末尾时 事件触发多次 因此 有多个 Future http 请求到 API 我读了一些关于SO的问题 发现我可能需要使用Notificatio
  • 如何为 flutter 绘图应用实现橡皮擦功能

    有一个关于通过 flutter 创建绘图应用程序的视频 YouTube https www youtube com watch v yyHhloFMNNA 它支持当用户点击屏幕时绘制线 点 但我找不到像 Android 本机那样擦除用户绘制

随机推荐