我正在练习扑朔迷离。
我想将此_list
替换为我的代码,以获取我所有文档的标题字段字符串,但是它不起作用。
都是List,但是为什么不起作用?
I / flutter(30337):方法'map'在null上调用。
I / flutter(30337):接收方:空
I / flutter(30337):尝试调用:map(关闭:(String)=> ChildItem)
void init() {
_list = List();
_list.add("Google");
_list.add("IOS");
_list.add("Andorid");
_list.add("Dart");
_list.add("Flutter");
_list.add("Python");
_list.add("React");
_list.add("Xamarin");
_list.add("Kotlin");
_list.add("Java");
_list.add("RxAndroid");
}
class ChildItem extends StatelessWidget {
final String name;
ChildItem(this.name);
@override
Widget build(BuildContext context) {
return new ListTile(title: new Text(this.name));
}
List<ChildItem> _buildSearchList() {
if (_searchText.isEmpty) {
return _list.map((contact) => new ChildItem(contact))
.toList();
}
else {
List<String> _searchList = List();
for (int i = 0; i < _list.length; i++) {
String name = _list.elementAt(i);
if (name.toLowerCase().contains(_searchText.toLowerCase())) {
_searchList.add(name);
}
}
return _searchList.map((contact) => new ChildItem(contact))
.toList();
}
} 这是我的代码
void init() {
_list = listBuild();
}
List<String> listBuild(){
StreamBuilder(
stream: Firestore.instance.collection('Post').snapshots(),
builder: (context, snapshot){
if (!snapshot.hasData) return LinearProgressIndicator();
return snapshot.data.documents.map((data) {
return Post.fromSnapshot(data).title;
}).toList();
},
);
}
感谢您的帮助