在将来的回报中制作“ Navigator.push”

时间:2019-04-04 08:07:42

标签: dart flutter

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

希望我的解释可以理解。

谢谢,最好的问候。

1 个答案:

答案 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();
                      }
//...