В навигаторе вы можете передать данные или объект, который вы хотите отправить в другой класс.
Например,
// Data need to sent second screen
class Person {
final String name;
final String age;
Person(this.name, this.age);
}
// Navigate to second screen with data
Navigator.push(context, new MaterialPageRoute(builder: (context) => new SecondScreenWithData(person: new Person("Priyank","28"))));
В SecondScreenWithData
классе вы можете получить переданные данные какниже.
class SecondScreenWithData extends StatelessWidget {
// Declare a field that holds the Person data
final Person person;
// In the constructor, require a Person
SecondScreenWithData({Key key, @required this.person}) : super(key: key);
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Second Screen With Data"),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
// Display passed data from first screen
new Text("Person Data \nname: ${person.name} \nage: ${person.age}"),
new RaisedButton(
child: new Text("Go Back!"),
onPressed: () {
// Navigate back to first screen when tapped!
Navigator.pop(context);
}
),
],
)
),
);
}
Проверьте полный Демонстрация навигации