[英]how to pass data from one screen to another screen with pushNamed in FLutter?
我想使用 pushNamed 將文本框控制器的數據從一個屏幕傳遞到另一個屏幕,那么我該如何傳遞數據呢?
這是導航屏幕的方法。 正如第一頁中的波紋管。
@override
void validateOtpSuccess() {
Navigator.of(context).popAndPushNamed(Constants.ROUTE_CHANGE_PASSWORD);
}
我想在更改密碼屏幕上獲取數據,那么我如何訪問數據以更改密碼屏幕?
在第一頁(假設data
是一個String
):
final result = await Navigator.pushNamed<String?>(context, '/change_password_page', arguments: data);
在您的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!),
);
在您的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.