问题标签 [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 回答
1457 浏览

flutter - Dart:哪个是更好的做法?使用 'late' 或构造函数初始化列表

我正在为一个 Dart 类建模,考虑到新的 null 安全类型。我相信有两种有效的方法来初始化不可为空的属性,从参数计算。

对于此示例,我们将使用 Favorite 类。

此类在构造函数中使用初始化列表。

这个类使用'late'关键字。

您什么时候会使用其中一种?使用“迟到”感觉有风险。如果我添加了另一个命名构造函数,编译器不会抱怨“favouriteId”没有被初始化。

还有其他选择吗?

谢谢!

0 投票
1 回答
437 浏览

flutter - '用户模型?函数(用户)”不能分配给参数类型“用户模型函数(用户?)”,因为“用户模型?” 可以为空,并且 'UserModel' 不是

#我一直在关注 twitter 克隆的 youtube 项目,将 _userFromFirebaseUser 放入 map() 时出现错误;#

##我在 13:29 收到错误,这是链接。https://www.youtube.com/watch?v=YI7avcWI3aQ&t=919s ##

##我在终端收到的错误是Launching lib\main.dart on sdk gphone x86 arm in debug mode... lib\main.dart:1 lib/services/auth/auth.dart:13:40: Error :参数类型'UserModel?函数(用户)”不能分配给参数类型“用户模型函数(用户?)”,因为“用户模型?” 可以为空,而 'UserModel' 不是。

  • 'UserModel' 来自'package:twitterclone/models/users.dart' ('lib/models/users.dart')。
  • '用户'来自'package:firebase_auth/firebase_auth.dart'('../../AppData/Local/Pub/Cache/hosted/pub.dartlang.org/firebase_auth-1.0.1/lib/firebase_auth.dart' )。返回 auth.authStateChanges().map(_userFromFirebaseUser);

代码和目录

-users.dart

-auth.dart

0 投票
2 回答
2717 浏览

flutter - 具有 null 安全性的 Flutter 条件渲染

如果过期不为空,我想呈现文本小部件。所以我检查了 null

但是得到了错误

在此处输入图像描述

0 投票
3 回答
1674 浏览

android - 使用 --no-sound-null-safety Flutter 生成 App Bundle

我正在尝试通过 Android Studio 生成 App Bundle(Build -> Generate Signed Bundle / APK),并且在构建包时遇到错误。

有没有一种方法可以添加参数--no-sound-null-safety,类似于您可以在命令行中执行的操作?

0 投票
2 回答
2509 浏览

flutter - Flutter - Nullability problem with Locale

Below code has no compiler warnings or errors. Running it results in:

Neither window nor locale could be null. No parameters here can be null. The error message is quite annoying because trying

Results in a compiler warning:

This is the code:

And this is pubspec.yaml

What is required to run the code in null-safety mode?

This is the localization class main.i18n.dart:

Output of Flutter doctor:

0 投票
1 回答
1058 浏览

flutter - Flutter Validator String 需要 Null Aware 但编译器警告不需要

我有一个 TextFormField:

这给出了一个警告:

警告:“!” 将无效,因为接收器不能为空。(unnecessary_non_null_assertion at [athelite] lib\Pages\PlayerEditPageDefaultState.dart:427)

所以我删除了感叹号,然后它变成了一个错误:

错误:无法无条件访问属性“长度”,因为接收者可以为“空”。([athelite] lib\Pages\PlayerEditPageDefaultState.dart:425 上的 unchecked_use_of_nullable_value)

编译器不满意!使用 Flutter 2.0 执行此操作的正确方法是什么?

0 投票
3 回答
1297 浏览

flutter - 如何在颤振中创建空安全块?

如何在 Flutter 中进行空值检查或创建空值安全块?

这是一个例子:

如果您尝试用 if 案例包围它,您会得到相同的错误:

如果您创建一个新属性,然后对其进行空检查,则它可以工作,但是每次要进行空检查时创建新属性会变得很麻烦:

有一个更好的方法吗?
喜欢?.let{}kotlin 中的语法?

0 投票
1 回答
765 浏览

flutter - 无法在“null-safety”版本的颤振中通过“onGenerateRoute()”传递“参数”

我想做什么?

像往常一样,我试图将数据从一个屏幕发送到另一个屏幕,onGenerateRoute()但我的屏幕不接受参数类型并显示错误参数类型“对象?” 不能分配给参数类型“Map<String, dynamic>”。

我还尝试更改Object?接收器屏幕上的参数类型,但现在我无法从Objectto中提取数据Map<String, dynamic>。我认为两者都是相同的数据类型,但 null 安全版本的处理方式不同。我认为这是一个错误。

我已经看到了有关使用参数导航的颤振官方文档,当我在交互式示例部分切换到 null-safety 时,它也显示错误。请参阅此屏幕截图或自己尝试。

截图 2021-03-30 at 20 13 56

它在颤振的非空安全版本中正常工作

这是片段

路由生成器类

验证FirebaseOtpScreen

日志
0 投票
2 回答
30480 浏览

flutter - Flutter 错误:主体可能正常完成,导致返回“null”,但返回类型可能是不可为空的类型

我正在使用启用了 null 安全性的新飞镖版本 <2.13.0-107.0.dev>。

有了这个任务列表:

当我尝试在这样的 ListView.builder 构造函数中使用它时:

我收到此错误:

错误:主体可能正常完成,导致返回“null”,但返回类型可能是不可为空的类型。

和运行日志中的这个错误:

错误:必须返回非空值,因为返回类型“小部件”不允许为空。

有关更多信息,Task 类定义如下:

0 投票
1 回答
209 浏览

flutter - dart:html 中的 Geolocation.getCurrentPosition 在启用 NNBD 的发布模式下不工作

有谁知道为什么在启用了声音空安全性的发布模式下运行时Geolocation.getCurrentPosition()fromdart:html不起作用(flutter run --release -d chrome)?

进行此调用时,我确实得到了一个Geopositionback 实例,但是当我尝试访问其中一个成员时,我收到以下错误消息:

如果我在调试中运行相同的代码(flutter run -d chrome或没有 NNBD,flutter run -d chrome --release --no-sound-null-safety一切正常)。重现此行为的简单 App 如下所示(它是默认 Flutter 计数器模板的略微更改版本):