【发布时间】:2021-12-02 05:35:45
【问题描述】:
`这是我的代码,我想将 id 声明为 null 但是由于 null 安全性,我必须将其声明为 id:'',但颤振不认为它为 null 。下面是我的代码
class _EditProductScreenState extends State<EditProductScreen> {
final _priceFocusNode = FocusNode();
final _descriptionNode = FocusNode();
final _imgurlController = TextEditingController();
final imgurlfocusnode = FocusNode();
final _form = GlobalKey<FormState>();
var editedproduct = Products_class(
id: '',
title: '',
price: 0.0,
description: '',
imgurl: '',
);
在上面的例子中,我没有将任何 id 传递给页面,所以默认情况下它应该是 null 并且应该调用 add product 。但是在这里调用了更新产品,这给了我范围错误。我该如何解决这个问题?
void _saveform() {
bool isValid = _form.currentState!.validate();
if (!isValid) {
return;
}
_form.currentState!.save();
if (editedproduct.id == null) {
Provider.of<products>(context, listen: false).addproduct(editedproduct);
}
if (editedproduct.id != null) {
Provider.of<products>(context, listen: false)
.updateProduct(editedproduct.id, editedproduct);
}
Navigator.of(context).pop();
}
【问题讨论】:
-
Products_Class 是你自己写的类还是包类?如果是你自己写的类,能贴出代码吗?