Страница смены навигатора при нажатии кнопки async
Очень новичок во Flutter. Как мне протолкнуть новый маршрут, основанный на условии, вызванном нажатием кнопки? (асинхронный вход в звонок).
Такие вещи: если 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
),
),
),
],
),
);
}
1 ответ
Решение
Лучше показать нам код LoginControl.signIn()
.
В любом случае, если signIn()
это Future
, тогда вы должны использовать async
await
...
onPressed: () async {
if (await LoginControl.signIn()) {
Navigator.push(context, MaterialPageRoute(builder: (context) => ArmDisarm()));
}
},
...
Убедись, что signIn()
метод возвращает true
если пользователь успешно вошел в систему.