flutter - 启用空安全后,如何初始化一个空文件而不给它一个颤振的路径
问题描述
我正在做一个项目,我要求用户从他/她的设备中选择一个文件。在更新颤振以启用空安全之前我这样做的方式是我将初始化一个空文件,并且在用户选择文件之后,空文件获得所选文件的路径。这是执行此操作的代码 -
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 建议在初始化文件之前添加一个后期修饰符,但是在选择文件之后,应用程序会因此而崩溃。有没有办法解决?请帮忙
解决方案
如果您的变量可以为空,则只需使其可为空:
File? myfile;
Null-Safety 是一项很棒的功能,可以让您在某些内容可以或不能为空时更快、更有效地查看。但有些变量可以为空。这完全没问题。所有空安全性要求是您使用如上所示的问号声明它们。
推荐阅读
- twilio - Twilio Flow Http 请求超时
- d - 如何从 D 中的数组有条件地创建类参数数组?
- oauth - 用户通过热点、wifi 使用 Open id 连接身份验证但不在组织域中时提示输入凭据
- wpf - 仅设计时控件,或者在哪里可以找到“d”命名空间的定义?
- ng-zorro-antd - nz中的服务构建模式,nzVisible总是正确的,对吗
- javascript - 如何使用 nuxt-link 和 i8n 导航子页面?
- asp.net - WCF 服务超时
- javascript - 将 AutoNumeric.js 应用于整个类
- python - 在 Presto 查询中使用 Python
- android - 通过改造返回可观察到的网络调用