问题标签 [dart-null-safety]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1942 浏览

dart - 如何转换列表列出在空安全飞镖?

我有一个飞镖清单:

我想删除任何空值并将其转换为List<String>. 我试过了:

在运行时,我收到以下错误:

解决此问题的正确方法是什么?

0 投票
1 回答
134 浏览

dart - 从 null 安全 Dart 中的 API 获取数据时,是否应该将字段保留为 null 或初始化为默认值?

从 api 检索某些东西时,我应该为每个空字段设置一个值吗?或者我应该保持它们为空并在显示它们时检查它们是否不为空?

前任:

或者

编辑->或者我应该以其他方式这样做吗?

0 投票
1 回答
469 浏览

flutter - Flutter 空安全迁移卡在“未定义命名参数”错误

我正在尝试按照本指南本视频将我的一个项目迁移到空安全,但我在升级我的依赖项和在 Web 界面中查看迁移建议之间陷入了困境。我设法将我的项目从 Flutter 1 升级到 Flutter 2,以将所有依赖项更新到它们的 null 安全版本,除了 build_runner 作为开发依赖项,但显然我们可以忽略它。现在,当我运行时dart migrate,这就是我在终端中得到的:

现在,如果我以前两个错误为例,这里是它指向的代码行:

从 Firebase Auth 调用这段代码:

正如你所看到的,两个命名参数都定义得很好,所以我真的不明白问题出在哪里。我检查了所有其他错误,它们是相同的:所有命名参数都存在并且实际上已定义。

我错过了什么?我可以安全地忽略这些错误并继续进行其余的迁移吗?

0 投票
1 回答
303 浏览

flutter - Flutter 应用程序上的 flutter_dotenv 出现空安全错误

我是 Flutter 的新手,在尝试使用 flutter_dotenv 包时遇到了一个我不明白的错误。

我添加了依赖项

但是当我尝试导入时

它返回给我。

你能帮助我吗 ?谢谢

0 投票
0 回答
265 浏览

flutter - Flutter get_it 6.0.0、injectable 1.2.2、Search Delegate 和 Null Safety

我在我的代码中采用了 Dart 启用的新 Null Safety 功能。目前,我面临以下问题:

在 SearchDelegate 类中,我从重写的方法“buildSuggestions”中调用工厂方法 getLocations:

正如我在前面的代码中指出的那样,我将自定义参数传递给 factoryParamAsync,目的是将搜索字符串传递给 googleplaces api:

新的 Null Safety 功能强制将 factoryParam 声明为可为空。

这里的要点是所有代码以前都像一个魅力一样工作,但是一旦采用新功能,就会抛出以下错误:

我试图将变量字符串“查询”转换为字符串?并对其进行测试,得到相同的错误。我尝试使用 factoryAsync 中的“instanceName”参数,尽管我在一些响应中看到它是不推荐的。

我希望我对这个问题有一个清晰的认识,任何建议都会受到欢迎。

0 投票
0 回答
125 浏览

flutter - Flutter FutureBuilder 使用 Firebase Phone Auth 引发异常“用于空值的空检查运算符”

使用 FutureBuilder 使用返回 Firebase 身份验证用户凭据的未来“firebaseAuthSvc.signinwithphoneno(widget.pin,widget.verificationID)”构建自身时,我收到以下异常。

════════ 小部件库捕获的异常═════════════════════════════␕══以下_CastError 被抛出构建 FutureBuilder(脏,状态:_FutureBuilderState#a7b44):空值检查运算符用于空值

相关的导致错误的小部件是 FutureBuilder lib/screens/enterpinsubwidgetsecondscreen.dart:34 当抛出异常时,这是堆栈 #0 UserInfo.uid package:firebase_auth_platform_interface/src/user_info.dart:52 #1 UserInfo.toString package: firebase_auth_platform_interface/src/user_info.dart:57 #2 StringBuffer.write (dart:core-patch/string_buffer_patch.dart:64:22) #3 StringBuffer.writeAll (dart:core-patch/string_buffer_patch.dart:102:7) # 4 IterableBase.iterableToFullString (dart:collection/iterable.dart:267:14)

我使用未来构建器的有状态小部件如下。

我未来使用 firebase 电话身份验证 signinwithcredential 的定义为

0 投票
3 回答
2322 浏览

flutter - 不能无条件调用运算符“*”,因为接收者可以为“null”。尝试向目标添加空检查('!')

我将此代码用于我的 UI 中的响应性。所以这段代码基本上做的是计算屏幕的大小,我使用下面的函数根据在 Figma 或 Adob​​e XD 中提供给我的设计来放置确切的字体大小。使用这种方法,我能够创建像素完美的 UI。

升级到 后Flutter 2.0.3,我收到空安全错误。我能够解决其中的大部分问题,但我无法解决此错误。请指教。

Complete Code

Error

0 投票
2 回答
102 浏览

dart - Dart Null 安全性,即使在构造函数主体中设置了可选的构造函数参数,也需要使用 `!`

!在访问具有可选构造函数参数的字段时,我必须使用空检查覆盖。我想知道是否有更好的方法来做到这一点,我还没有意识到。

如果未提供参数,则此可选的、可为空的字段在构造函数主体中分配一个值。

稍后使用时httpClient我需要提供!,即使它永远不会为空......

...否则飞镖分析仪告诉我: The method post cannot be unconditionally invoked because the receiver can be null

当我使用late关键字时,Lint 检查告诉我“assign-if-null”永远不会发生......

...因为httpClient永远不能为空。

我应该忽略 Lint 吗?

我应该做一些完全不同的事情吗?

0 投票
2 回答
185 浏览

dart - Dart 中的命名参数

美好的一天,我正在尝试将命名参数 {num phone} 应用于以下示例:

但我收到错误:

感谢您的帮助。

0 投票
2 回答
1095 浏览

flutter - Flutter2 升级:为什么 build_runner 包不是空安全的

我正在尝试将我的 Flutter 项目升级到 Flutter2。我看到我所有的包都是空安全的,但是bulid_runner.

我的问题是如何在不支持如此重要的软件包的情况下升级到 Flutter2。我该如何解决这个问题?有没有人看到这个问题?