flutter - 如何在颤动中处理文件的空安全性?
问题描述
我正在使用 Firebase,我有这样的submitForm
方法:
// File variable declaration
File? _userImageFile;
void _submitForm() {
try {
final isVaild = _formKey.currentState!.validate();
// To close soft keyboard
FocusScope.of(context).unfocus();
if (_userImageFile == null && !_isLogIn) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Please pick an image'),
backgroundColor: Colors.black,
),
);
return;
}
if (isVaild) {
_formKey.currentState!.save();
widget._submitAuthForm(
_userName.trim(),
_userImageFile!,
_userEmail.trim(),
_userPassword.trim(),
_isLogIn,
);
}
} catch (e) {
print(e.toString());
}
}
我已经使用相同的表单处理了注册和登录,所以当我登录时的值为_userImageFile
空,所以它给出了异常:Null check operator used on a null value
在这里我无法弄清楚如何处理这个问题?
解决方案
花了几个小时后,我得到了几个解决方案,我希望这对其他人也有帮助:
- 通过编辑 pubspec.yml 删除 null 安全性
sdk: ">=2.3.0 <3.0.0"
- 为登录和注册创建 2 个不同的函数,而不是单个 SubmitForm()
- 正如@ZeeshanAhmad 建议的那样
File? _userImageFile = File('');
推荐阅读
- mapbox-gl-js - 获取地图瓦片边界框
- ios - 我在这里遇到的这个错误到底是什么?(iOS、Xcode、Healthkit)
- python - 如何将操作应用于 python 图像的每个 PIXEL(不是每个 rgb 组件!)(使用 numpy、opencv 或 PIL)?
- json.net - 处理 Uknown 字符串值以反序列化为默认枚举
- javascript - Ionic 5 和 Angular 10 的区域感知承诺
- jupyter-notebook - Jupyter MathJax 物理包
- react-native - Google Play Store 上的不同应用看起来一样 - React Native
- php - 使部分 PDF 在 Dompdf 的奇数页或偶数页上开始
- javascript - 替换 DOM 元素上的 Rails Ajax 事件
- apache-spark - Pyspark 中 groupby 的替代方案以提高 Pyspark 代码的性能