簡體   English   中英

如何在FLutter中使用pushNamed將數據從一個屏幕傳遞到另一個屏幕?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM