#dart #flutter
#dart #flutter
Вопрос:
Я пытаюсь выполнить процесс входа / регистрации и перенаправить пользователя на панель мониторинга.
Итак, у меня есть этот метод:
Future _redirectToDashboard() async {
var route = new MaterialPageRoute(
builder: (BuildContext context) => new Dashboard(userID: userID),
);
Navigator.of(context).push(route);
}
А затем вызывает его после login()
завершения.
_register().whenComplete(() => _redirectToDashboard());
И затем Dashboard
я делаю это:
class Dashboard extends StatefulWidget
{
int userID;
Dashboard({Key key, this.userID}) : super(key: key);
@override
_Dashboard createState() => _DashboardState();
}
И используйте его с:
Text('User ID: ${widget.userID}')
Но тогда я не могу сделать это в Dashboard
классе:
Dashboard({Key key, this.userID, this.name, this.balance}) : super(key: key);
несмотря на то, что я установил его в функции выше как:
builder: (BuildContext context) => new Dashboard(userID: userID, name: name, balance: balance),
Но это не работает. Я получаю сообщение об ошибке, которое name
, например, не определено, почему я могу передать только один параметр? И есть ли способ, как я могу обновлять Dashboard
новыми данными каждый раз, когда пользователь открывает это состояние?
Я читал, что я должен создать отдельный User
класс со всеми свойствами. Но как я могу применить его к панели мониторинга?
Комментарии:
1. можете ли вы опубликовать окончательный код для класса Dashboard?
Ответ №1:
Я предполагаю, что вы добавили только параметры конструктора, не добавляя фактических членов класса.
class Dashboard extends StatefulWidget
{
final int userID;
final String name;
final String balance;
Dashboard({Key key, this.userID, this.name, this.balance}) : super(key: key);
@override
_Dashboard createState() => _DashboardState();
}