[英]how to pass data from one screen to another screen with pushNamed in FLutter?
I want to pass data of textbox controller from one screen to another screen using pushNamed, So how can i pass the Data?我想使用 pushNamed 将文本框控制器的数据从一个屏幕传递到另一个屏幕,那么我该如何传递数据呢?
Here is the method which Navigate the Screen.这是导航屏幕的方法。 As Bellow in page one.
正如第一页中的波纹管。
@override
void validateOtpSuccess() {
Navigator.of(context).popAndPushNamed(Constants.ROUTE_CHANGE_PASSWORD);
}
And I want to get data on change password screen, so how i can access the data to change password screen?我想在更改密码屏幕上获取数据,那么我如何访问数据以更改密码屏幕?
In the first page (assuming data
is a String
):在第一页(假设
data
是一个String
):
final result = await Navigator.pushNamed<String?>(context, '/change_password_page', arguments: data);
In your onGenerateRoute
method:在您的
onGenerateRoute
方法中:
Route? onGenerateRoute(RouteSettings settings) {
...
switch (settings.name) {
...
case '/change_password_page':
final data = settings.arguments as String?;
return MaterialPageRoute<String?>(
builder: (context) => ChangePasswordPage(arguments: data!),
);
In your ChangePasswordPage
widget:在您的
ChangePasswordPage
小部件中:
class ChangePasswordPage extends StatefulWidget {
final String data;
const ChangePasswordPage({required this.data, Key? key}) : super(key: key);
@override
_ChangePasswordPageState createState() => _ChangePasswordPageState();
}
...
Navigator.pop<String?>(context, _newPassword);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.