asynchronous - Flutter:如何将 TextField 文本传递给 API 请求?
问题描述
我正在学习 Flutter,所以我用新闻 API做了一个有趣的小新闻应用程序。它具有针对不同类别的不同选项卡,并根据与每个选项卡关联的关键字请求数据。但是,我想要一个标签,用户可以在其中根据特定关键字搜索新闻。我的问题是我的Resource
(如下所示)是静态的,所以我无法将东西传递给它,而且我不确定是否/如何在Resource
没有静态的情况下制作。我不会超载我的代码,我只是根据我的目标寻找一些指导。我最好的猜测是以Future
某种方式使用,但我不确定在这种情况下会是什么样子。
如果需要更多代码,我很乐意提供。我不喜欢我的问题太混乱。有任何想法吗?谢谢!这是最重要的代码:
static chooseURL(keyword) {
if (keyword == 'General') {
return Constants.HEADLINE_NEWS_URL.substring(0, 37) + "country=us" +
Constants.HEADLINE_NEWS_URL.substring(
39, Constants.HEADLINE_NEWS_URL.length);
} else if(keyword == 'Search') {
// No idea!
} else {
return Constants.HEADLINE_NEWS_URL.substring(0, 39) +
keyword.toLowerCase() + Constants.HEADLINE_NEWS_URL.substring(
39, Constants.HEADLINE_NEWS_URL.length);
}
}
static Resource<List<NewsArticle>> all(key) {
return Resource(
url: chooseURL(key),
parse: (response) {
final result = json.decode(response.body);
Iterable list = result['articles'];
return list.map((model) => NewsArticle.fromJson(model)).toList();
});
}
和这个:
void _populateNewsArticles() {
WebService().load(NewsArticle.all(keyword)).then((newsArticles) => {
setState(() {
_newsArticles = newsArticles;
})
});
}
解决方案
推荐阅读
- java - 如何仅通过一次地图查找来增加给定键的值?
- javascript - Javascript 注入安全解决方案
- html - 创建倾斜响应背景
- scala - Flink 的 operator state 示例不会编译(java.lang.Iterable vs. scala.collection.Iterable)
- jquery - 使用flask和jquery从和Oauth2重定向中检索参数
- amazon-web-services - AWS Ec2 - 跨多个子网/可用区的启动模板
- safari - Bootstrap 4 网格问题 Safari
- react-native - 开玩笑测试中未定义的道具
- ruby - 通过迭代重构 Ruby If/Else 并推入数组
- php - 用于显示 woocommerce 产品档案的模板在登录和退出 Wordpress 时看起来不同