我正在使用名为的Flutter插件search_widget。此小部件的data参数带有一个列表。但是,当我sqlite用于获取数据时,我将其保存为Future<List>表格。有什么办法可以转换Future<List>为List?或任何其他方式使它起作用。
search_widget
sqlite
Future<List>
List
借用的例子search_widget你需要dataList在这样的小部件:
dataList
SearchWidget<LeaderBoard>( dataList: list, textFieldBuilder: (TextEditingController controller, FocusNode focusNode) { return MyTextField(controller, focusNode); }, )
当然,你可以转换Future<List>成List像其他答案建议。但是您 将无法 做,dataList: await _sqliteCall();因为build方法被设计为纯同步的。
dataList: await _sqliteCall();
build
未来完成时,您将必须返回诸如进度指示器之类的东西。为此,您可以使用FutureBuilder:
FutureBuilder
FutureBuilder<List<Leaderboard>>( future: _sqliteCall(), builder: (context, snapshot) { if (snapshot.hasData) { return SearchWidget<LeaderBoard>( dataList: snapshot.data, textFieldBuilder: (TextEditingController controller, FocusNode focusNode) { return MyTextField(controller, focusNode); }, ) } return CircularProgressIndicator(); } ),
当然,也可以使用来完成此操作StatefulWidget,您可以查看本文以获取有关该问题的详细说明。
StatefulWidget