forms - 在 ChipBuilder 中显示建议列表
问题描述
我已经在一个问题上工作了 7 天,并且(即使在找到 Flutter 开发人员的帮助之后)找不到应该是一个非常简单的选项的解决方案。
我有一个表单字段芯片生成器,我希望在用户开始输入字段时显示一个可能选项的列表。
我已经从 Firestore 集合中调用了该列表,并且可以将其打印出来以显示在控制台中 - 但我无法让 Chip Builder 获取它
var options1;
void getOptions() async {
DocumentReference documentReference = FirebaseFirestore.instance
.collection("options")
.doc("P6E5TbwxN0cofTk8K4ge");
documentReference.get().then((datasnapshot) {
if (datasnapshot.exists) {
final options1 = datasnapshot.data()['options'];
print(options1);
return options1;
} else {
print("No such options");
}
});
}
查询有效,并在控制台中显示可用选项。
这是 Chip Builder 代码,它可以工作,但似乎无法从 options1 变量中收集列表:
findSuggestions: (String query) {
if (query.isNotEmpty) {
var lowercaseQuery =
query.toLowerCase();
return options1.where(
(options1) => options1
.toLowerCase()
.contains(
query.toLowerCase())
.toList());
} else {
print('empty');
return const [];
}
},
如果我不从 Firestore 中查询列表,并按照以下创建选项变量,那么 Chip Builder 可以正常工作并显示来自该变量的选项列表:
final options1 = [
'Option 1',
'Option 2',
'Option 3'
]
为什么 getOptions() 函数中的选项变量列表不显示选项?
解决方案
也许你可以试试这个
return options1.where((element) => element.toLowerCase().contains(lowercaseQuery));
推荐阅读
- javascript - 无法在函数中返回值/变量
- android - Android 项目无法在更新到 android studio 3.2 的基础上构建
- express - 在刷新 NEXT JS 页面时从同一服务器获取数据
- php - 混淆 CodeIgniter 路由
- javascript - 是否可以两次重用正则表达式中定义的逻辑
- python - Numpy 中的 3-D 矩阵乘法
- c# - 将 Azure Blob 存储与 .NET 结合使用
- vb.net - 我可以加入两个实体并将结果绑定到 DataGridView 以使 DataGridView 编辑可以应用于数据库吗?
- firebase - 从 firebase 模块仅导入 auth 包
- javascript - AngularJS 中的 $rootScope 与 $rootScope.$emit/$broadcast 有什么区别?