【发布时间】:2020-08-16 15:44:34
【问题描述】:
我是flutter的初学者,在flutter项目中我使用了flutter_typeahead包,但我无法执行这段代码。 我想根据用户提供的输入搜索我的项目。我用 Typoahead 编写了以下代码 任何人告诉我我的代码有什么问题
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:fmiantrader/SearchService.dart';
import 'SearchService.dart';
class Serchitemsbymod extends StatefulWidget {
static String id='serchitemsbymod';
@override
_SerchitemsbymodState createState() => _SerchitemsbymodState();
}
class _SerchitemsbymodState extends State<Serchitemsbymod> {
List<String> store=[];
var q=[];
var t=[];
SearchService _searchService=SearchService();
List<DocumentSnapshot> search=<DocumentSnapshot>[];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Mian Traders'),
),
body: Padding(
padding: const EdgeInsets.all(30.0),
child: TypeAheadField(
textFieldConfiguration: TextFieldConfiguration(
autofocus: true,
style: DefaultTextStyle.of(context).style.copyWith(
fontStyle: FontStyle.italic
),
decoration: InputDecoration(
border: OutlineInputBorder()
)
),
suggestionsCallback: (pattern) async {
return await _getsearch().getSuggestion(pattern);
},
itemBuilder: (context, suggestion) {
return ListTile(
leading: Icon(Icons.shopping_cart),
title: Column(
children: <Widget>[
Text(suggestion['A']),
Text(suggestion['B']),
],
),
subtitle: Text('${suggestion['C']}'),
);
},
onSuggestionSelected: (suggestion) {
// Navigator.of(context).push(MaterialPageRoute(
// builder: (context) => ProductPage(product: suggestion)
// ));
},
),
),
);
}
_getsearch()async{
List<DocumentSnapshot> data=await _searchService.getSearch();
setState(() {
search=data;
});
}
}
我的 SearchService 类代码是这样的
import 'package:cloud_firestore/cloud_firestore.dart';
class SearchService {
Firestore _firestore = Firestore.instance;
String ref='items';
Future<List<DocumentSnapshot>> getSearch() =>
_firestore.collection(ref)
.getDocuments()
.then((snaps){
return snaps.documents;
});
Future<List<DocumentSnapshot>> getSuggestion(String suggestion) =>
_firestore.collection(ref)
.where('items', isEqualTo: suggestion)
.getDocuments()
.then((snap) {
return snap.documents;
});
}
当我开始搜索时
【问题讨论】:
标签: firebase flutter flutter-dependencies flutter-animation