我试着用www.example.com做一个新闻应用程序newsapi.org,但是得到了The body might complete normally, causing 'null' to be returned, but the return type, 'FutureOr<List<Article>>', is a potentially non-nullable type. Try adding either a return or a throw statement at the end.
误差
getArticle()
我读过很多有同样问题的ppl,他们中的大多数被告知要添加return或throw,我已经这样做了,但错误仍然出现。
下面是我代码
import 'dart:convert';
import 'package:http/http.dart';
import 'package:medreminder/NewsArticle/models/article_models.dart';
class ApiService {
final endPointUrl = "https://newsapi.org/v2/top-headlines?country=us&apiKey=cacee27fff544eb39d5fb29b28ca3788";
Future<List<Article>> getArticle() async{
Response res = await get(Uri.parse(endPointUrl));
if(res.statusCode==200){
Map<String, dynamic> json = jsonDecode(res.body);
List<dynamic> body = json['articles'];
List<Article> articles = body.map((dynamic item) => Article.fromJson(item)).toList();
}else{
throw("Cant get the News");
}
}
}
让我知道如果你们需要看到我的其他代码如果必要的话。谢谢你们
1条答案
按热度按时间xtupzzrd1#
如错误所述:
尝试在末尾添加return或throw语句。
你需要
return
一些东西。在你的例子中,它是List<Article>
。我读过很多有同样问题的人,他们中的大多数被告知要添加return或throw,我已经这样做了,但错误仍然出现。
这可能是因为您在
if
/else
语句 * 中 * 添加了return语句,所以如果您的条件不满足,那么您仍然可能不会返回任何内容。要避免该错误,代码应如下所示(null safe):
现在,这个函数可以为空-这意味着如果响应为200,它将返回
articles
,否则,它将返回null