这是我收到的错误消息:
The body might complete normally, causing 'null' to be returned, but the return type is a potentially non-nullable type.
Try adding either a return or a throw statement at the end.在以下代码中:
Product findProductById(String prodId) {
_productsList.firstWhere((element) {
return prodId == element.id;
});
}我想通过id查找产品,但如果找不到,我应该返回什么?
发布于 2021-07-30 17:52:24
您没有在findProductById函数中使用return:
Product findProductById(String prodId) {
return _productsList.firstWhere((element) {
return prodId == element.id;
});
}发布于 2021-07-30 17:52:47
从Dart 2.12和更高版本开始,我们需要指定类型是可以为空的还是不可为空的。在您的情况下,您应该添加'?‘如下所示,在类型名product后面加一个问号,这将告诉编译器您的函数可以返回一个可以为空的产品。此外,您还忘记从productList返回过滤后的产品。
Product? findProductById(String prodId) {
return _productsList.firstWhere((element) {
return prodId == element.id;
});发布于 2021-07-30 17:58:25
可以返回一个空的Product it not found。
Product findProductById(String productId) {
return productList.firstWhere((element) => element.id == productId,
orElse: () => Product() // make a empty product using default constructor);
}https://stackoverflow.com/questions/68595182
复制相似问题