为什么我收到此错误警告:空感知操作的操作数“??”具有排除 null 的“Color”类型

2023-12-24

我正在使用这个包

flutter_datetime_picker: ^1.5.1

这是我的代码

String _date = "Please pick Age";

  Widget _buildage() {
    return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
      Text(
        'Enter Age',
        style: kLabelStyle,
      ),
      SizedBox(height: 10.0),
      Container(
        decoration: kBoxDecorationStyle,
        alignment: Alignment.centerLeft,
        height: 70.0,
        child: Container(
          child: TextFormField(
            initialValue: "haaas",
            validator: (val) {
              if (val.isEmpty) {
                return 'Enter yout Age';
              }
              if (val.length < 4) {
                return 'Enter a username minimun 4 chars long';
              }

              return null;
            },
            onChanged: (val) {
              setState(() => age = val);
            },
            onTap: () {
              DatePicker.showDatePicker(context,
                  theme: DatePickerTheme(
                    containerHeight: 210.0,
                  ),
                  showTitleActions: true,
                  minTime: DateTime(2000, 1, 1),
                  maxTime: DateTime(2022, 12, 31), onConfirm: (date) {
                setState(() {
                  _date = '${date.year} - ${date.month} - ${date.day}';
                });
              }, currentTime: DateTime.now(), locale: LocaleType.en);
            },
            readOnly: true,
            decoration: InputDecoration(
              border: InputBorder.none,
              contentPadding: EdgeInsets.only(top: 14.0),
              prefixIcon: Icon(
                Icons.date_range_rounded,
                color: Colors.white,
                size: 28,
              ),
              hintText: " $_date",
              hintStyle: kHintTextStyle,
            ),
          ),
        ),
      ),
    ]);
  }

错误或警告是这样的

../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_datetime_picker-1.5.1/lib/flutter_datetime_picker.dart:311:32: Warning: Operand of null-aware operation '??' has type 'Color' which excludes null.
 - 'Color' is from 'dart:ui'.
                  color: theme.backgroundColor ?? Colors.white,
                               ^

一切正常,我不知道为什么会收到此错误。如果您需要更多信息,请发表评论。希望有人知道如何解决这个问题。如果您需要任何其他信息,请发表评论


这不是一个错误,而是来自flutter_datetime_picker包表明它还没有完全更新其代码以完全符合空安全的惯用方式。基本上,它使用??运营商极有可能theme.backgroundColor为空,但现在theme.backgroundColor被标记为不可空,该运算符是多余的。弹出警告很烦人,但它不会以任何方式影响您的应用程序。

注意代码has已正确更新包存储库的 master 分支 https://github.com/Realank/flutter_datetime_picker/blob/eb9701172da23121d8632369e5a6c4382bcc5e45/lib/flutter_datetime_picker.dart#L311,这样下次发布包时,警告就会消失。

EDIT:从版本 1.5.1 开始,此软件包现在正式支持空安全。 该修复是在 1.5.1 发布后通过拉取请求添加的,因此下一个版本(1.5.2 或其他版本)应该解决此问题。

EDIT 2:距离上次提交已经过去一年了,距离 1.5.1 发布也过去了 14 个月,可以肯定地认为这个包已经被放弃了。值得注意的是,除了我不知道的特定功能之外,CupertinoDatePicker https://api.flutter.dev/flutter/cupertino/CupertinoDatePicker-class.html无论如何,内置 Flutter 库中的这个包现在已经过时了。

对于那些出于某种原因想要继续使用此包而不收到警告的人,您可以更改包依赖项以指向存储库的 master 分支(信用[1] https://github.com/Realank/flutter_datetime_picker/issues/298#issuecomment-1161936977 [2] https://stackoverflow.com/a/68295206/1255873):

flutter_datetime_picker:
    git:
      url: https://github.com/AlexHartford/flutter_datetime_picker.git
      ref: master

值得注意的是,如果包开发人员返回新的提交,这种方法可能会使您的应用程序面临重大更改,如果存储库成为恶意活动的目标,则可能会使您的应用程序面临漏洞。您还将失去使用 pub 包管理器的好处,例如版本管理和自动升级。因此,我强烈建议任何仍在使用此包的人迁移到 FlutterCupertinoDatePicker above.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我收到此错误警告:空感知操作的操作数“??”具有排除 null 的“Color”类型 的相关文章

随机推荐

  • NoSQL 数据库中的架构迁移脚本

    我有一个一直使用 C 实体框架和 SQL Server 的活动项目 然而 随着 NoSQL 替代方案的可行性日益增加 我正在研究将项目切换为使用 MongoDB 的所有影响 显然 主要的过渡障碍是由于 无模式 造成的 找到了对 C 等语言意
  • 用于反转文件名中日期顺序的批处理脚本

    我想使用批处理脚本来重命名一堆使用以下命名方案的文件 File 2 9 pdf File 3 9 pdf File 4 9 pdf 我想反转数字 使它们变成 File 9 2 pdf File 9 3 pdf File 9 4 pdf 通常
  • 实体框架一对多 IQueryable

    所以 我一直在玩弄这个tutorial https www tutorialspoint com entity framework entity framework first example htm因为我需要优化一些查询 然而 我意识到一
  • 一起转换图像和蒙版(Keras 示例)

    此代码片段取自 Keras API 参考 数据预处理 部分 一起转换图像和蒙版的示例 link https keras io api preprocessing image https keras io api preprocessing
  • Angular 4 调用路由的函数

    我通过 Angular Web 应用程序中的菜单设置了路由 菜单中设置了 routerLinks 如下面的主页链接 a a
  • FileStream.Dispose 是否立即关闭文件?

    我有一些代码 通过使用 MemoryStream WriteTo 将 MemoryStream 保存到 FileStream 来写入文件 文件关闭后再次打开以读取一些元数据 这在 80 90 的情况下有效 另外 20 我收到一个异常 说该文
  • 如何验证 Apple APN 设备令牌 - WCF .NET

    我正在构建一个 WCF REST Web 服务 移动应用程序调用该服务将 Apple 设备令牌插入数据库 我想在插入数据库之前验证设备令牌 是否有办法验证设备令牌以了解其是否有效 我在论坛上进行了搜索 但找不到任何示例代码 在 NET 中
  • 将 UITabBarItem 图像向下移动?

    通常在每个选项卡上UITabBar您有一个小图像和一个命名该选项卡的标题 图像位于选项卡顶部 居中以容纳下面的标题 我的问题是 如果你想要一个只有图像而没有标题的 tabBar 有没有办法将图像向下移动 以便它在选项卡中更好地居中 我目前正
  • 将 iframe 插入到 React 组件中

    我有一个小问题 从服务请求数据后 我得到了一个 iframe 代码作为响应 我想将其作为道具传递给我的模态组件并显示它 但是当我简单地 this props iframe 它在渲染函数中显然将其显示为字符串 在 React 中或使用 JSX
  • 使用 PHP 从纯文本和 HTML 文本的混合创建 PDF [重复]

    这个问题在这里已经有答案了 可能的重复 使用 PHP 将 HTML CSS 转换为 PDF https stackoverflow com questions 391005 convert html css to pdf with php
  • 在 UITableView 中对齐多个运行时生成的 UILabels

    我有一个UITableView需要通过列出类似的样式来支持内容 But the tricky part is that the amount of Label will vary with each cell some may have o
  • 在 Visual Studio 2015 中从 *.ts 生成 *.js

    当我将 ts 文件添加到 Visual Studio 2015 并对其进行编译时 js 文件不是 ts 的代码隐藏文件 它仅驻留在该文件夹中 而不是 Visual Studio 项目的一部分 这是设计使然还是我破坏了项目中的某些内容 如果是
  • 评估软件最低要求

    有没有办法评估软件的最低要求 我的意思是 我怎样才能发现我的应用程序需要的最小 RAM 量 Thanks 分析器在这里不会为您提供帮助 也不会估计数据结构的大小 探查器当然可以告诉您代码在哪里花费了最多的 CPU 时间 但它不会告诉您是否未
  • 如何从包含联系人详细信息且对象不在电话簿中的对象生成 .vcf 文件

    我想为一个对象生成一个 vcf 文件 其中包含姓名 图像 电话号码 传真号码 电子邮件地址 地址等联系信息 该对象未添加到手机的通讯录中 但存储在我的地址簿中 应用 生成 vcf 文件后 我可以像这样发送此 vcard Intent i n
  • Android 上的自定义字体和自定义 Textview

    从我需要开发的应用程序中 我收到了一种特定字体 其中包含许多文件 例如 FontName Regular 字体名称 粗体 字体名称 我需要在应用程序的所有文本视图中使用它 首先我认为这是一项容易的任务 查看SO并发现一个非常好的线程 her
  • C# Windows 控制台应用程序如何判断它是否以交互方式运行

    用 C 编写的 Windows 控制台应用程序如何确定它是在非交互式环境 例如从服务或计划任务 中调用还是在能够用户交互的环境 例如命令提示符或 PowerShell 中调用 编辑 4 2021 新答案 由于 Visual Studio 调
  • 使用 PyGame 将基于百分比的颜色值从绿色更改为红色

    我正在尝试制作一个健康栏 根据健康百分比将绿色缩放为红色 基本上 我试图使值 0 5 对应于 255 255 0 值 1 0 对应于 0 255 0 值 0 0 对应于 255 0 0 我看见这个帖子 https stackoverflow
  • 如何使用 cmake 编译 MPI 包含的 c 程序

    我正在尝试将 openmp 和 mpi 技术应用于需要构建 cmake make 的开源 C 程序 我已经找到了如何在 CMake 的 try compile 函数中设置 OpenMP 的链接器标志 https stackoverflow
  • 在 PostgreSQL 中使用 r sf::st_write 到非公共模式

    我正在尝试将空间表写入不是 PostgreSQL 数据库中默认公共模式的模式 library sf library DBI library RPostgreSQL library spData PostgreSQL DB parameter
  • 为什么我收到此错误警告:空感知操作的操作数“??”具有排除 null 的“Color”类型

    我正在使用这个包 flutter datetime picker 1 5 1 这是我的代码 String date Please pick Age Widget buildage return Column crossAxisAlignme