【发布时间】:2021-03-19 15:08:22
【问题描述】:
我在颤动的搜索页面上工作,但我一直有错误-'期望一个'Widget'类型的值,但得到一个'String'类型的值。这是我的代码。我关注了 youtube 视频 https://www.youtube.com/watch?v=H3CCtCmBUoQ&ab_channel=1ManStartup,但无法正常工作。有人会查看我的代码并告诉我它有什么问题吗?
//part of statefulWidget
class _DataSearchState extends State<DataSearch> {
TextEditingController _searchController = TextEditingController();
List allfields = ['A', 'B', 'C', 'D', 'E'];
List aafields = [ 'A', 'B'];
List abfields = [ 'C', 'D', 'E'];
List resultsList = [];
@override
void initState() {
super.initState();
_searchController.addListener(_onSearchChanged);
}
@override
void dispose() {
_searchController.removeListener(_onSearchChanged);
_searchController.dispose();
super.dispose();
}
_onSearchChanged() {
searchResultsList();
}
searchResultsList() {
var showResults = [];
if (_searchController.text != "") {
for (var e in allfields) {
if (e.contains(_searchController.text)) {
showResults.add(e);
}
}
} else {
showResults = List.from(allfields);
}
setState(() {
resultsList = showResults;
});
}
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
TextField(
controller: _searchController,
decoration: InputDecoration(prefixIcon: Icon(Icons.search)),
),
),
ListView.builder(
itemCount: resultsList.length,
itemBuilder: (BuildContext context, int ndx) {
return ListTile(
title: resultsList[ndx],
onTap: () {
//
});
}
}
这是错误页面的截图https://i.stack.imgur.com/NBEZb.jpg
【问题讨论】: