我正在使用 flutter showSearch 函数来搜索地址。到目前为止一切正常。现在我想实现每次用户更改搜索输入时都会重建的建议。为此,我使用 flutter 地理编码库。
问题是我不知道在使用 buildSuggestions 函数构建建议时如何执行异步操作。
显然我不能简单地使 buildSuggestions 函数异步,但如果可以的话我的代码将如下所示:
@override
Future<Widget> buildSuggestions(BuildContext context) async {
var addresses = await Geocoder.local.findAddressesFromQuery(query);
final Iterable<Address> suggestions = query.isEmpty
? _history
: addresses;
return _SuggestionList(
query: query,
suggestions: suggestions.map<String>((String i) => '$i').toList(),
onSelected: (String suggestion) {
query = suggestion;
this.close(context, query);
},
);
}
Run Code Online (Sandbox Code Playgroud)
一定有办法实现我想做的事情。有什么建议么?
更新:
在 Frank06 的帖子的帮助下,我编写了以下代码:
@override
Widget buildSuggestions(BuildContext context) {
return FutureBuilder(
future: Geocoder.local.findAddressesFromQuery(query),
builder: (BuildContext context, AsyncSnapshot<List<Address>> snapshot) {
// check if snapshot.hasData
if (snapshot.connectionState == …Run Code Online (Sandbox Code Playgroud)