我试图创建一个“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码时,会出现一个新页面。
希望我的解释能够被理解。
谢谢您最好的问候。
您需要在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();
}
//...