Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 使用API进行showSearch_Flutter - Fatal编程技术网

Flutter 使用API进行showSearch

Flutter 使用API进行showSearch,flutter,Flutter,我正在尝试实现搜索功能,并希望从API获得结果 在buildResults()方法下,您会发现我的注释//数据为null,但问题是我从API调用获取数据。我是不是遗漏了什么 在buildsResults()下,我调用Future\u getResults并返回接收到的数据。我记录了你能看到的数据 类SearchBar扩展StatefulWidget{ @凌驾 _SearchBarState createState()=>new_SearchBarState(); } 类_SearchBarSt

我正在尝试实现搜索功能,并希望从API获得结果

在buildResults()方法下,您会发现我的注释//数据为null,但问题是我从API调用获取数据。我是不是遗漏了什么

在buildsResults()下,我调用Future\u getResults并返回接收到的数据。我记录了你能看到的数据


类SearchBar扩展StatefulWidget{
@凌驾
_SearchBarState createState()=>new_SearchBarState();
}
类_SearchBarState扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
iconTheme:new IconThemeData(颜色:Theme.of(context.hintColor)),
立面图:1,
背景色:主题。背景色,
行动:[
图标按钮(
自动对焦:对,
图标:图标(Icons.search),
onPressed:()异步{
最终结果=等待显示搜索(上下文:上下文,委托:数据搜索(上下文));
})
],
标题:对,
标题:文本(“搜索内容”),
),
);
}
}
类DataSearch扩展了SearchDelegate{
最终构建上下文parentContext;
最终记录器=新记录器();
DataSearch(this.parentContext);
@凌驾
列出buildActions(BuildContext上下文){
返回[
图标按钮(
图标:图标(图标。清除),
已按下:(){
query=“”;
},
)
];
}
@凌驾
小部件buildLeading(BuildContext上下文){
返回图标按钮(
图标:动画指令(
图标:animateDictions.menu\u箭头,
进展:过渡化,
),
已按下:(){
Navigator.pop(上下文);
Navigator.pop(parentContext);
},
);
}
@凌驾
小部件构建结果(构建上下文){
回归未来建设者(
未来:_getResults(),
生成器:(上下文,异步快照){
if(snapshot.connectionState==connectionState.done){
logger.d(snapshot.hasData);
返回ListView.builder(
itemBuilder:(上下文,索引){
返回列表块(
标题:文本(快照.数据[索引].标题),
onTap:(){
关闭(上下文、快照.数据[索引]);
},
);
},
itemCount:snapshot.data.length,//数据为空
);
}否则{
返回中心(
子对象:CircularProgressIndicator(),
);
}
},
);
}
@凌驾
小部件构建建议(构建上下文){
返回容器();
}
Future\u getResults()异步{
SharedReferences prefs=等待SharedReferences.getInstance();
String language=prefs.getString('language');
var数据;
等待http.get(Constants.BASE_URL+“/search/”+language+“/”+query),然后((响应){
data=convert.jsonDecode(response.body)作为列表;
});
记录器.d(数据);
返回data.map((model)=>SearchModel.fromJson(model)).toList();
}
}

我想这就是它的工作原理:

onTap: () async {
  final results = await showSearch(context: context, delegate: SearchBar(),query:query);
}
Result获取返回值
Query是传递的参数

我想这就是它的工作原理:

onTap: () async {
  final results = await showSearch(context: context, delegate: SearchBar(),query:query);
}
Result获取返回值 查询是传递的参数