启用空安全后,如何初始化一个空文件而不给它一个 flutter 路径
How can I initialize a empty file without giving it a path in flutter after null safety is enabled
我正在做一个项目,我要求用户从 his/her 设备 select 一个文件。在 flutter update 启用 null safety 之前,我的做法是初始化一个空文件,在用户选择文件后,空文件获得 selected 文件的路径。这是执行此操作的代码 -
File myfile;
Future<void> _takePicture() async {
FilePickerResult? result =
await FilePicker.platform.pickFiles(type: FileType.image);
if (result != null) {
PlatformFile file = result.files.first;
setState(() {
myFile = File(file.path.toString());
});
但是在我将 flutter 更新到 2.5.2 后,它开始报错,“不可为空的实例字段 'myFile' 必须初始化。”。我的 IDE 建议在初始化文件之前添加一个 late 修饰符,但在选择文件后,应用程序因此而崩溃。有没有办法解决?
请帮忙
如果您的变量 可以是 null,那么就让它可以为 null:
File? myfile;
Null-Safety 是一项很棒的功能,可让您在 can 或 cannot 为 null 时更快、更有效地查看。但是有些变量 可以 为空。那完全没问题。所有 null 安全要求是您使用上面看到的问号声明它们。
我正在做一个项目,我要求用户从 his/her 设备 select 一个文件。在 flutter update 启用 null safety 之前,我的做法是初始化一个空文件,在用户选择文件后,空文件获得 selected 文件的路径。这是执行此操作的代码 -
File myfile;
Future<void> _takePicture() async {
FilePickerResult? result =
await FilePicker.platform.pickFiles(type: FileType.image);
if (result != null) {
PlatformFile file = result.files.first;
setState(() {
myFile = File(file.path.toString());
});
但是在我将 flutter 更新到 2.5.2 后,它开始报错,“不可为空的实例字段 'myFile' 必须初始化。”。我的 IDE 建议在初始化文件之前添加一个 late 修饰符,但在选择文件后,应用程序因此而崩溃。有没有办法解决? 请帮忙
如果您的变量 可以是 null,那么就让它可以为 null:
File? myfile;
Null-Safety 是一项很棒的功能,可让您在 can 或 cannot 为 null 时更快、更有效地查看。但是有些变量 可以 为空。那完全没问题。所有 null 安全要求是您使用上面看到的问号声明它们。