按下异步按钮时导航器更改页面
Navigator change page on async button press
对 Flutter 非常陌生。我将如何根据按下按钮调用的条件推送新路由? (异步登录调用)。
这种事情:if signIn (async) = success -> Navigator.push
干杯
Widget buildButtons() {
return new Container(
child: new Column(
children: <Widget>[
new MaterialButton(
minWidth: MediaQuery.of(context).size.width - 30, //FULL WIDTH - 30
color: Style.palette3,
padding: EdgeInsets.all(Style.padding1),
child: new Text('Sign in',
style: Style.signInBtn
),
onPressed: () {
if (LoginControl.signIn()) Navigator.push(context, MaterialPageRoute(builder: (context) => ArmDisarm()));
},
),
new FlatButton(
child: Padding(
padding: Style.paddingCreateAcc,
child: new Text(
'Create an account',
style: Style.fontSize1
),
),
),
],
),
);
}
最好给我们看一下LoginControl.signIn()
的代码。
无论如何,如果 signIn()
是 Future
,那么您可以使用 async
await
...
onPressed: () async {
if (await LoginControl.signIn()) {
Navigator.push(context, MaterialPageRoute(builder: (context) => ArmDisarm()));
}
},
...
确保 signIn()
方法 returns true
如果用户成功登录。
对 Flutter 非常陌生。我将如何根据按下按钮调用的条件推送新路由? (异步登录调用)。
这种事情:if signIn (async) = success -> Navigator.push
干杯
Widget buildButtons() {
return new Container(
child: new Column(
children: <Widget>[
new MaterialButton(
minWidth: MediaQuery.of(context).size.width - 30, //FULL WIDTH - 30
color: Style.palette3,
padding: EdgeInsets.all(Style.padding1),
child: new Text('Sign in',
style: Style.signInBtn
),
onPressed: () {
if (LoginControl.signIn()) Navigator.push(context, MaterialPageRoute(builder: (context) => ArmDisarm()));
},
),
new FlatButton(
child: Padding(
padding: Style.paddingCreateAcc,
child: new Text(
'Create an account',
style: Style.fontSize1
),
),
),
],
),
);
}
最好给我们看一下LoginControl.signIn()
的代码。
无论如何,如果 signIn()
是 Future
,那么您可以使用 async
await
...
onPressed: () async {
if (await LoginControl.signIn()) {
Navigator.push(context, MaterialPageRoute(builder: (context) => ArmDisarm()));
}
},
...
确保 signIn()
方法 returns true
如果用户成功登录。