在Future返回中创建“Navigator.push”

问题描述 投票:0回答:1

我试图创建一个“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码时,会出现一个新页面。

希望我的解释能够被理解。

谢谢您最好的问候。

dart flutter
1个回答
0
投票

您需要在futurebuilder的构建器方法中返回一个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();
                      }
//...
© www.soinside.com 2019 - 2024. All rights reserved.