我试图创建一个“ Future”函数,该函数返回“ Navigator.push”类而不是“ Widget”。
我尝试了普通方法,但是没有用,当前脚本如下:
...
return new FutureBuilder<Map<String, dynamic>>(
future: fetchUserQR(new http.Client(),snapshot.data), //scan qr code
builder: (context1, snapshot1) {
if(snapshot1.hasData) {
return Navigator.push( //this the problem
...
我的目标是,当我完成扫描QR码后,将出现一个新页面。
希望我的解释可以理解。
谢谢,最好的问候。
答案 0 :(得分:0)
您需要在futurebuilder的builder方法中返回Widget。因此,返回一个Container,并在此框架之后推送新页面。
return new FutureBuilder<Map<String, dynamic>>(
future: fetchUserQR(new http.Client(),snapshot.data), //scan qr code
builder: (context1, snapshot1) {
if(snapshot1.hasData) {
SchedulerBinding.instance.addPostFrameCallback((_) {
// Navigator.push....
});
return Container();
}
//...